Javascript динамически созданная проверка поля формы - PullRequest
0 голосов
/ 21 января 2012

Я создал форму с динамически созданным полем, и я пытаюсь найти способ проверить все поля с помощью 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 Ответ

1 голос
/ 21 января 2012
<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/

...