Проверка в javascript - удалить ошибку в сообщении о фокусе
Я не очень хорошо разбираюсь в javascript, поэтому, пожалуйста, потерпите меня.
У меня есть форма, в которой я проверяю элементы управления с помощью JavaScript. ошибка отображается, когда поля пусты через div, но когда я фокусируюсь и что-то набираю в текстовом поле, div должен исчезнуть. но ошибка div не делает, и даже если я наберу что-то допустимое, он все равно отображает div.
Я хотел бы знать, где я иду не так с этим сценарием:
<script type="text/javascript">
var err = document.getElementById("errmsg");
function checkInput(inPut) {
if (inPut.getValue() == "") {
err.setStyle('display', 'block');
err.setTextValue("Field cannot be empty!");
inPut.focus();
return false;
}
else {
return true;
}
}
function checkTextBox(textBox)
{
if (textBox.getValue() == "") {
err.setStyle('display', 'block');
err.setTextValue("Field cannot be empty!");
textBox.focus();
return false;
}
else if (!checkValidity(textBox.getValue())) {
err.setStyle('display', 'block');
err.setTextValue("Please enter a valid email address!");
textBox.focus();
return false;
}
else {
return true;
}
}
. . .
<div id="errmsg" class="invalid" style="display:none;"></div> <br />
. . .
<input type="text" tabindex="1" name="name" id="name" class="input_contact" onblur="checkInput(this);"/> <br />
. . .
<input type="text" tabindex="2" name="email" id="email" class="input_contact" onblur="checkTextBox(this);"/> <br />
это форма в приложении facebook, но пока работает fbjs, я предполагаю, что есть проблема с моим основным javascript.
2 ответа
Попробуй это
var err = document.getElementById("errmsg");
function checkInput(inPut) {
if (inPut.getValue() == "") {
err.setStyle('display', 'block');
err.setTextValue("Field cannot be empty!");
inPut.focus();
return false;
}
else {
err.setStyle('display', 'none');
err.setTextValue("");
return true;
}
}
function checkTextBox(textBox)
{
if (textBox.getValue() == "") {
err.setStyle('display', 'block');
err.setTextValue("Field cannot be empty!");
textBox.focus();
return false;
}
else if (!checkValidity(textBox.getValue())) {
err.setStyle('display', 'block');
err.setTextValue("Please enter a valid email address!");
textBox.focus();
return false;
}
else {
err.setStyle('display', 'none');
err.setTextValue("");
return true;
}
}
Чтобы div исчезал при первом вводе чего-либо, а не когда флажок установлен, вам также понадобится onchange
и / или onfocus
обработчики событий для полей:
<input type="text" tabindex="1" name="name" id="name" class="input_contact"
onblur="checkInput(this);"
onfocus="err.setStyle('display', 'none');"
onchange="err.setStyle('display', 'none');"
/>
Они также могут быть установлены внутри checkInput()
, если вы так желаете.