2012-01-20 17 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

ありがとう!それは魅力のように働いた!私は前にそれをテストしたと思ったが、明らかに何か間違ったことをしていた! PS:私も間違いがありますが、私はそれを受け入れなければなりません。正しい時は正しいです:...} while(i <= counter) – VGe0rge

関連する問題