Мой код JavaScript отлично работает в Firefox, но не в Chrome. В то время как в Firefox правильное количество форм (построенных кодом в функции JavaScript) отображается сразу после выбора опции, в Chrome ничего не происходит. Я не уверен, почему. Я давно не проверял, так как в основном использую компьютер с Linux, но я думаю, что IE9 тоже работает.
Если бы вы могли помочь мне найти решение, я был бы признателен. Кстати, я прочитал другой вопрос с аналогичным названием, но, похоже, он не ответил на этот вопрос.
<script type="text/javascript">
function showForms(numForms)
{
// build the form
var form = "";
for(i = 1; i <= numForms; i++)
{
// define one section of the form (give fields unique names).
var formPart = '<fieldset><legend>Add User</legend><label>Full Name:</label><input name="fullname' + i + '" type="text" required="required"" /><label>Email:</label><input name="email' + i + '" type="email" /><label>Phone:</label><input placeholder="1 (123)-123-1234" name="phone' + i + '" type="tel" /><label>Spreadsheet:</label><input name="spreadsheet' + i + '" type="file" /><label>Registration #:</label><textarea name="regnums' + i + '" placeholder="Aircraft registration number(s). Separate each number with a comma."></textarea></fieldset>';
form = form + formPart;
}
// output the form to the page
var output = document.getElementById("output");
output.innerHTML = form + '<input name="numForms" value="' + numForms + '" type="hidden" />';
}
</script>
Кстати, эта функция вызывается <option onclick="showForms(#)">#</option>
, где # — количество отображаемых форм. Опции, конечно же, находятся в файле <select>
.
Спасибо заранее за вашу помощь.
РЕДАКТИРОВАТЬ: Вот скрипт вызова, содержащий HTML, PHP и JavaScript.
<?php
// include the javascript function to generate the form
include ('../private/Includes/Scripts/showforms.js');
// form handling code
if (isset($_POST['submit']))
{
// make sure the input for the number of users is a number, and less than or
// equal to 10
if (is_numeric($_POST['numForms']) && $_POST['numForms'] <= 10)
{
$regCount = $_POST['numForms'];
}
// initialize array for form data
$regData = array();
// fill array with multi-dimentional form data
for ($i = 1; $i <= $regCount; $i++)
{
// get form data and store in temporary variables
$fullname = trim($_POST['fullname' . $i]);
$email = trim($_POST['email' . $i]);
$phone = trim($_POST['phone' . $i]);
$spreadsheet = $_POST['spreadsheet' . $i];
$regnums = trim($_POST['regnums' . $i]);
// put data in array
$regData[$i] = array(
'username' => '',
'fullname' => $fullname,
'email' => $email,
'phone' => $phone,
'spreadsheet' => $spreadsheet,
'regnums' => $regnums
);
// unset temporary variables
unset($invalid, $username, $fullname, $email, $phone, $spreadsheet, $regnums);
}
$errors = registerUsers($regData);
if ($errors[0] == "Some users were not registered due to missing usernames.")
{
$notes[] = "Some users were not registered due to missing usernames.";
unset($errors[0]);
}
if (!isset($errors))
{
$success = true;
}
}
?>
<h2 style="margin-top: -9px;">Register Users</h2>
<p>Use this form to register new users. Usernames and passwords are automatically generated and emailed to their owner's addresses.</p>
<form enctype="multipart/form-data" method="post">
<fieldset>
<legend>
Form Setup & Results
</legend>
<label>No. of User(s):</label>
<select onchange="showForms(0)" name="select">
<option selected="selected">- Please Select -</option>
<option onclick="showForms(1)">1</option>
<option onclick="showForms(2)">2</option>
<option onclick="showForms(3)">3</option>
<option onclick="showForms(4)">4</option>
<option onclick="showForms(5)">5</option>
<option onclick="showForms(6)">6</option>
<option onclick="showForms(7)">7</option>
<option onclick="showForms(8)">8</option>
<option onclick="showForms(9)">9</option>
<option onclick="showForms(10)">10</option>
</select>
</fieldset>
<div id="output"></div>
<input id="submit" name="submit" type="submit" value="Submit" />
</form>