2012-01-20 3 views
0

Я создал форму с динамически созданным полем, и я пытаюсь найти способ проверить все поля с помощью javascript. Я просто хочу предупредить пользователя о том, что поле равно null. Вот мой код:Javascript динамически созданная форма поля формы

<script> 
var counter = 0; 
function addInput(divName){ 
counter++; 
var Ai8ousa = document.createElement('div'); 
Ai8ousa.innerHTML = "Field: "+(counter +1) + "<input type='text' name='field[]'>"; 
document.getElementById(divName).appendChild(Ai8ousa); 

} 

function validations(form){ 
var field; 
var i=0; 
do{ 
    field=form['field[]']; 
     if (field.value=='') 
      { 
      alert('The field is null!!!'); 
      return false; 
      } 
     i++; 
}while(i<counter); 
} 
</script> 


<form action="" method="post" onsubmit="return validations(this)" > 
<div id="dynamicInput"> 
Field : <input type="text" name="field[]" /> <br /> 
</div> 
<input type="button" value="New field" onClick="addInput('dynamicInput');"> 
<input type="submit" value="Submit" /> 

</form> 

Я ожидал, что будет работать, но я явно не так :( С помощью этого кода, если я не нажал «Новое поле» и нажмите на кнопку отправить я получите уведомление, как ожидается, но во всех других случаях я ничего не получаю Спасибо за ваше время так или иначе, и извините, если я сделал грамматические ошибки

ответ

1
<script type="text/javascript"> 
var counter = 0; 
function addInput(divName){ 
counter++; 
var Ai8ousa = document.createElement('div'); 
Ai8ousa.innerHTML = "Field: "+(counter +1) + "<input type='text' name='field[]'>"; 
document.getElementById(divName).appendChild(Ai8ousa); 

} 

function validations(form){ 
var field; 
var i=0; 
do{ 
    field=form[i]; 
     if (field.value=='') 
      { 
      alert('The field is null!!!'); 
      return false; 
      } 
     i++; 
}while(i<counter); 
} 
</script> 


<form action="" method="post" onsubmit="return validations(this)" > 
<div id="dynamicInput"> 
Field : <input type="text" name="field[]" /> <br /> 
</div> 
<input type="button" value="New field" onClick="addInput('dynamicInput');"> 
<input type="submit" value="Submit" /> 

</form> 

Я не понимаю эту строку:.! field=form['field[]'];, поэтому я изменил его до field=form[i];

http://jsfiddle.net/sZ4sd/

+0

Thanks! Это работало как шарм! Я думал, что я тестировал это раньше, но я делал что-то неправильно, очевидно! PS: У меня есть ошибка, хотя я тоже должен принимать i, равный счетчику, поэтому правильное время: ...} while (i <= counter) – VGe0rge

Смежные вопросы