我有一个要求用户输入的 HTML 表单。javascript 函数用于验证表单,应在执行 PHP 代码之前触发(使用 onsubmit)。(头文件中引用了js文件<script type="text/javascript" src="js/javascript.js"></script>
)
但是 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();
}
编辑
这是所要求的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
编辑 2
我添加alert ("Hi");
到 javascript 的开头并且警报从未出现,这让我认为该函数根本没有执行。
编辑 3
我最初怀疑这个问题可能是由于 PHP 是错误的。正如 Jason 在他的评论中提到的,问题出在 javascript 本身。这是一个有点奇怪的想法,因为相同的 javascript 代码在没有 PHP 和我的本地机器上“独立”工作。有这么多需要考虑的因素......谢谢大家花时间看看我的问题!