У меня есть HTML-форма, запрашивающая ввод пользователя. Функция javascript предназначена для проверки формы и должна запускаться (используя onsubmit) ПЕРЕД выполнением кода PHP. (Файл js ссылается в заголовке <script type="text/javascript" src="js/javascript.js"></script>
)PHP и HTML-форма с javascript onsubmit не выполняется
ОДНАКО javascript никогда не выполняется, а вместо этого PHP-код выполняет и (правильно) включает в себя новый файл.
Как я могу выполнить выполнение javascript по мере необходимости?
HTML файл:
<form name="details" action="" method="post"
onSubmit="return ValidateForm(details);">
...
<input type="submit" name="post-this-form" value="Next"/>
</form>
PHP файл:
if (isset($_POST['post-this-form']) and
$_POST['post-this-form'] == 'Next')
{
...
some php
...
include 'shipping-details.html.php';
exit();
}
EDIT
вот Javascript в соответствии с просьбой. Он был протестирован и работал без участия какого-либо PHP. Пройдя details
(имя формы), я делаю все поля формы доступными.
function ValidateForm(details)
{
var firstName=document.forms.details.firstName.value;
var lastName=document.forms.details.lastName.value;
var streetAddress=document.forms.details.streetAddress.value;
var town=document.forms.details.town.value;
var city=document.forms.details.city.value;
var zip=document.forms.details.zip.value;
var country=document.forms.details.country.value;
var creditCard=document.forms.details.creditcard.value;
...
//Checks firstName
if ((firstName=="")||(!firstName.match(alphabetExpression)))
{
alert ("Invalid first name, please re-enter");
return false;
}
...
//Checks creditCard
if ((creditCard=="")||(!creditCard.match(numericExpression))||(creditCardLength!=16))
{
alert ("Invalid credit card entry, please re-enter");
return false;
}
}// end function
EDIT 2
я добавил alert ("Hi");
в начале JavaScript и оповещения никогда не появляется, что приводит меня к мысли о том, что функция не выполняется вообще.
EDIT 3
Мои первоначальные подозрения, что эта проблема может быть связана с PHP был неправ. Как упоминал Джейсон в своих комментариях, проблема была в самом javascript. Это немного странно, потому что один и тот же код javascript работал «самостоятельно» без PHP и на моей локальной машине. Так много факторов, чтобы рассмотреть ... спасибо Все за то, что нашли время, чтобы посмотреть на мою проблему!
Не могли бы вы разместить свой javascript-код? – chapkom
попробуйте написать 'onSubmit =" return ValidateForm (this); "' вместо 'onSubmit =" return ValidateForm (details); "' –
Что именно вы намерены передать своей функции Javascript? Потому что прямо сейчас вы говорите, что ваша передача переменной называется деталями, а не строкой «подробности» переменной, которую я предполагаю, это то, что вы намеревались. – Ally