私は、セッションによって相互にリンクされた複数ページのフォームセットをまとめ、各セクションが送信されるたびにフォームの検証にJavascriptを使用しています。私の最初のフォームはすばらしく働いています。私の第二のものではない。これは、データベースから取り込まれるドロップダウンボックス数(1〜20)の前の形式に依存する動的に作成されたフォームです。私は、私のドロップダウンを埋める配列を作成するためのすべてのクエリコードをあなたに惜しまなくして、フォーム検証スクリプトとフォーム自体に直接入ります。単純なJavascriptフォームの検証に関する問題
<script>
タグなしのヘッドからの検証スクリプト:
function validateForm()
{
var count = <?php echo $_SESSION['credits']; ?>;
var i = 1;
for (i = 1; i <= count; i++)
{
var j = i;
for (j++; j <= count; j++)
{
var a = document.forms["addcredits"]["creditdropdown_"+i].value;
var b = document.forms["addcredits"]["creditdropdown_"+j].value;
if ((a == b) && (a != 0))
{
alert('Cannot select the same writer more than once.');
return false;
}
}
}
var foundOne = false;
var h = 1;
while (h <= count && !foundOne)
{
if (document.forms["addcredits"]["creditdropdown_"+h].value != 0)
{
foundOne = true;
}
h++;
}
if (!foundOne)
{
alert('You must select at least one writer to credit.');
return false;
}
}
フォームコード:
<form id="addcredits" class="appintro" method="post" action="recordcheck.php" onsubmit="return validateForm()">
<div class="form_description">
<h2>Song Title Submission</h2>
<p>Step 2: Select writing credits for song title</p>
</div>
<ul>
<?php
for ($i = 1; $i <= $_SESSION['credits']; $i++)
{ ?>
<li id="li_<?php echo $i; ?>">
<label class="description" for="creditdropdown_<?php echo $i; ?>">Song Credit #<?php echo $i; ?>:</label>
<select "creditdropdown_<?php echo $i; ?>">
<option value="0">Select a writer</option>
<?php foreach ($writers as $key => $writer) { ?>
<option value="<?php echo $key; ?>"><?php echo $writer; ?></option>
<?php } ?>
</select>
<p class="guidelines" id="guidelines_<?php echo $i; ?>">Writer not found in database? Add them <a href="" target="_blank">here</a>.</p>
</li>
<?php } ?>
<li id="buttons">
<input type="hidden" name="form_id" value="2">
<input type="hidden" name="submit" value="1">
<input id="nextButton" class="button_text" type="submit" name="submit" value="Next">
</li>
</ul>
</form>
私は、[次へ]をクリックしたときに警告ウィンドウのどちらがアップポップと私はランダムこだわる場合デバッグ・アラート・ウィンドウを検証スクリプトに挿入すると、私が表示できるようになったのは、コードの最初に詰まったものだけでした。私が一番働いたのは、最初の割り当てがa
だったのですが、デバッガでさえも表示されませんでした。私は、私が割り当てに間違って何かをしていると仮定しているか、ドロップダウンの値に何か問題がありますか?いずれにせよ、私は困惑しています。