У меня есть форма, для которой все текстовые поля должны быть заполнены перед отправкой.моя форма выглядит следующим образом:
<form name="form" method="post" action="url" onsubmit="return checkEmpty(this)" >
<div class="field">
<label>field1</label><input type="text" name="f1" />
</div>
<div class="field">
<label>field2</label><input type="text" name="f2" />
</div>
..
....
......
input type="submit" name="Submit" value="submit" />
</form>
. Что я делаю здесь, так это то, что при отправке формы я проверяю, является ли текстовое поле пустым, и, если он есть, я создаю dom
элемент h3
и добавляюэто к div
этого соответствующего поля, и если текстовое поле не пустое, я проверяю, есть ли какое-либо текстовое поле, присоединенное к этому соответствующему полю, и если я нахожу его, я удаляю его.вот мой код JavaScript
function checkEmpty(form) {
var textboxes=form.elements;
for(var i=0;i<textboxes.length;i++)
{
if((textboxes[i].type=="text" || textboxes[i].type=="password") && textboxes[i].textLength==0) //text box is empty
{
var msg=document.createElement('h3');
msg.innerHTML="u cant leave this field blank";
textboxes[i].parentNode.appendChild(msg);
return false;
}
else //text box is not empty
{
var rem_msg=textboxes[i].parentNode.getElementsByTagName('h3');
for(var j=0;j<rem_msg.length;j++)
textboxes[i].parentNode.removeChild(rem_msg[j]);
}
}
}
Теперь браузер зависает, когда я отправляю форму. * Кроме того, мой код не работает в ggogle chrome, а только в Firefox * ДоЯ не удалял элементы, код работал нормально, но удаление элемента необходимо, потому что, скажем, пользователь не вводит никакого значения в текстовое поле 1 с первой попытки, поэтому элемент h3
будет добавлен, но теперь он вводит некоторый текст в первое текстовое поле, нооставляет второе текстовое поле пустым, поэтому элемент h3
первого текстового поля должен исчезнуть.
из-за ответа ниже код больше не зависает в браузере, но все же я могу толькоДобавить h3
элементы в DOM, но не может удалить их. Также код работает в Firefox, но не в Google Chrome.