私は動的に入力をフォームに作成しています動的に作成された入力の数を検証するフォーム
少なくとも「n」個の要素を入力します。
<html lang="en-US">
<head>
<meta name="referrer" content="origin">
<script>
var counter = 0;
var limit = 50;
function addInput(divName, arrName){
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " inputs");
}
else {
var newdiv = document.createElement('div');
var af = "autofocus"
newdiv.innerHTML = "<input id='my-div-"+counter+"' type='text' name='" + arrName + "[]' required autofocus=" + af + ">";
document.getElementById(divName).appendChild(newdiv);
document.getElementById('my-div-'+counter).focus();
counter++;
}
}
function validateForm(){
var frm = document.forms['simples'];
a = parseInt(frm.elements['myInputs_1[]'].length)
var sum = parseInt(frm.elements['myInputs_1[]'].length)
if(parseInt(sum) < 4){
alert("You must write at least 4 sentences ");
return false;
}
}
</script>
</head>
<body>
<form name="simples" action="part.php" align="center" onsubmit="return validateForm()" method="POST">
<div id = "dynamicInputHolder_1">
<b>Emotion </b><input type="text" value="" name="emotion" id="emotion" class="generatedEmotion" readonly>
<input type="hidden" value="" name="uniqueID" id="uniqueID">
<div id="dynamicInput_1">
<textarea rows="5" cols="50" readonly class="floating-box">
John arrived at Sally's house to pick her up. John and Sally were going to a fancy restaurant that evening for a dinner. John was little nervous because he was going to ask Sally to marry him.</textarea>
</div>
<input type="button" value="Add connecting sentences" onClick="addInput('dynamicInput_1', 'myInputs_1');">
</div>
<br>
<input type="submit" value="show me what is next">
</form>
</body>
</html>
番号テキストボックスは、それが動作しない0と1、2に等しいより大きい場合にのみ動作しvalidateForm()
方法。
これは最低限の例があることを、実際のWebサイトでは、私は複数のアレイでの入力を収集し、多くのそのようなdiv
秒を持っているので、私はのようなものの上にそれらを合計していないしてください:
var sum = parseInt(frm.elements['myInputs_1[]'].length) + parseInt(frm.elements['myInputs_2[]'].length) + parseInt(frm.elements['myInputs_3[]'].length)
それが起こるかもしれません配列のうち空のものはほとんどありません。
少なくともn
個の入力がまとめてあることを確認するにはどうすればよいですか?
@clabe45、 'myInputs_1 []'はdivではなく、入力型要素に与えられた名前で、 '[' ']'のために 'html'配列です。どうやって取ることができるのですか?それはコードの中にあります。私はこの質問の答えを参考にしました:https://stackoverflow.com/questions/7227917/getting-html-array-length-with-javascript – Adorn
私は今、質問を理解しようとしています... – clabe45