Я работаю над созданием многостраничного набора форм, которые связаны между собой сеансом, и использую Javascript для проверки формы при отправке каждого раздела.Моя первая форма работает фантастически.Мой второй, не так много.Это динамически создаваемая форма, которая зависит от предыдущей формы от количества раскрывающихся списков (от 1 до 20), которые заполняются из базы данных.Я избавлю вас от всего кода запроса, чтобы создать массив, который заполняет мои выпадающие списки, и сразу перейти к сценарию проверки формы, а затем к самой форме.
Сценарий проверки из головы без тегов <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
после этого, даже отладчики не показывали.Я предполагаю, что я делаю что-то неправильно в назначении или что-то не так со значениями в раскрывающемся списке?В любом случае, я в тупике.