PHP&;未执行包含javascript onsubmit的HTML表单

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);"> ... &

我有一个HTML表单要求用户输入。javascript函数用于验证表单,应该在执行PHP代码之前触发(使用onsubmit)。(js文件在标题
中引用)

但是,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
}