PHP&;未执行包含javascript onsubmit的HTML表单
我有一个HTML表单要求用户输入。javascript函数用于验证表单,应该在执行PHP代码之前触发(使用onsubmit)。(js文件在标题PHP&;未执行包含javascript onsubmit的HTML表单,php,javascript,forms,Php,Javascript,Forms,我有一个HTML表单要求用户输入。javascript函数用于验证表单,应该在执行PHP代码之前触发(使用onsubmit)。(js文件在标题中引用) 但是,javascript永远不会执行,相反,PHP代码会执行并(正确地)包含新文件 如何使javascript按要求执行 HTML文件: <form name="details" action="" method="post" onSubmit="return ValidateForm(details);"> ... &
中引用)
但是,javascript永远不会执行,相反,PHP代码会执行并(正确地)包含新文件
如何使javascript按要求执行
HTML文件:
<form name="details" action="" method="post"
onSubmit="return ValidateForm(details);">
...
<input type="submit" name="post-this-form" value="Next"/>
</form>
编辑
这是请求的javascript。它已经在没有任何PHP参与的情况下进行了测试和工作。通过传递详细信息
(表单名称),我可以访问所有表单字段
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
我添加了警报(“Hi”)代码>到javascript的开头,警报从未出现,这让我觉得函数根本没有执行
编辑3
我最初怀疑这个问题可能是由PHP造成的,这是错误的。正如Jason在评论中提到的,问题在于javascript本身。这是一个有点奇怪的想法,因为相同的javascript代码在没有PHP和本地机器的情况下“独立”工作。这么多的因素要考虑…谢谢大家抽出时间来看看我的问题! 关于您试图构建的函数,这里有一些您必须知道的事情
function ValidateForm() {
this; // this contains the form name no need for any variable declaration
return true; // or false This is very important to continue the execution
// false stops the submittion
}
当您解决这两个问题时,它应该可以正常工作。将注释转换为答案
“我打赌有javascript错误。在firefox中打开错误控制台。ctrl+shift+j。”
很高兴这有帮助。你能发布你的javascript代码吗?试着写onSubmit=“return ValidateForm(this);”
而不是onSubmit=“return ValidateForm(details);“
你打算传递给你的javascript函数的到底是什么?因为现在,您告诉它您正在传递一个名为details的变量,而不是变量字符串'details',我猜这是您想要的。@Ally-这可能就是问题所在,在无法看到json a旁注的情况下,您为什么要退出();而不是返回?is ValidateForm(详细信息);返回false?@orourkek,很抱歉你这么认为。这在某种程度上回答了他的问题,但在你编辑之前,你甚至没有解释他必须做什么。。。从OP上的评论可以看出,我同意你的解决方案,但当时他的问题没有实际答案
function ValidateForm() {
this; // this contains the form name no need for any variable declaration
return true; // or false This is very important to continue the execution
// false stops the submittion
}