Php jQuery的Firefox表单提交问题

Php jQuery的Firefox表单提交问题,php,jquery,forms,firefox,Php,Jquery,Forms,Firefox,我使用以下脚本提交jQuery表单,但是Firefox生成了一个崩溃错误报告,请告诉我我做错了什么 function teamValidation(){ var cat_id = $('#cat_id').val(); if(cat_id == "0"){ alert("Category is invalid..."); return false; }else{ $('#addForm').submit()

我使用以下脚本提交jQuery表单,但是Firefox生成了一个崩溃错误报告,请告诉我我做错了什么

function teamValidation(){
    var cat_id = $('#cat_id').val();    

    if(cat_id == "0"){
        alert("Category is invalid...");    
        return false;
    }else{
        $('#addForm').submit(); 
        return false;
    }
}

<form action="<?php echo SITE_URL; ?>adminteams/saveDetail/" 
 name="addForm" id="addForm" onsubmit="return teamValidation();">
 <input type="hidden" name="cat_id" id="cat_id" value="1"/>
</form>
function teamValidation(){
var cat_id=$('#cat_id').val();
如果(类别id=“0”){
警报(“类别无效…”);
返回false;
}否则{
$('#addForm')。提交();
返回false;
}
}

您忘了关闭函数定义

function teamValidation(){
    var cat_id = $('#cat_id').val();    

    if(cat_id == "0"){
        alert("Category is invalid...");    
        return false;
    }else{
        $('#addForm').submit(); 
        return false;
    }
} <--- this
function teamValidation(){
var cat_id=$('#cat_id').val();
如果(类别id=“0”){
警报(“类别无效…”);
返回false;
}否则{
$('#addForm')。提交();
返回false;
}

}最后你错过了一个“}”。不过,它不应该导致崩溃。 您的Firefox安装有99%的问题。我刚和我的在这里核对过。工作正常。您的代码没有问题。尝试卸载并重新安装Firefox

另一个发现。您的表格将无限期提交。也许你的其他浏览器更新了,你的Firefox也过时了(不能处理无限递归,这就是它可能崩溃的原因)

无论如何,请尝试更换以下部件:

$('#addForm').submit();
与:

希望对你有帮助


祝您平安…

cat\u id
文本框的值不为0时,您有一个提交表单的无限循环,然后阻止表单的提交。删除
else
块,因为它没有实际用途

更详细地说:

function teamValidation(){
    var cat_id = $('#cat_id').val();    

    if(cat_id == "0"){
        alert("Category is invalid...");    
        return false;
    }else{
        $('#addForm').submit(); // this submits the form again - does NOT proceed with this submission of the form
        return false; // returning false will prevent the submission from being completed
    }
}

<form action="<?php echo SITE_URL; ?>adminteams/saveDetail/" 
 name="addForm" id="addForm" onsubmit="return teamValidation();">
 <input type="hidden" name="cat_id" id="cat_id" value="1"/>
</form>
function teamValidation(){
var cat_id=$('#cat_id').val();
如果(类别id=“0”){
警报(“类别无效…”);
返回false;
}否则{
$(“#addForm”).submit();//这将再次提交表单-不会继续提交表单
return false;//返回false将阻止提交完成
}
}

问题是您的表单提交了多次。您可以使用以下任一方法实现目标:
HTML:

<form action="<?php echo SITE_URL; ?>adminteams/saveDetail/" name="addForm" id="addForm">
 <input type="hidden" name="cat_id" id="cat_id" value="1"/>
</form>
<form action="<?php echo SITE_URL; ?>adminteams/saveDetail/" name="addForm" id="addForm" onsubmit="return teamValidation();">
     <input type="hidden" name="cat_id" id="cat_id" value="1"/>
    </form>
另一种方式:
HTML:

<form action="<?php echo SITE_URL; ?>adminteams/saveDetail/" name="addForm" id="addForm">
 <input type="hidden" name="cat_id" id="cat_id" value="1"/>
</form>
<form action="<?php echo SITE_URL; ?>adminteams/saveDetail/" name="addForm" id="addForm" onsubmit="return teamValidation();">
     <input type="hidden" name="cat_id" id="cat_id" value="1"/>
    </form>

这不是}的问题,当我在StackOverflow中提出这个问题时,我只是忘记了这一点。浏览器设计用于处理javascript错误。如果浏览器发现错误,就会停止执行Javascript。由于Javascript错误导致的崩溃已经不是今天的事了。很抱歉,您的安装肯定有问题。@ahmedtabrez我不同意您的看法-请看我的答案。代码中有一个巨大的逻辑缺陷,当验证通过时,表单会被一次又一次地提交(而不是允许一次提交)。这不是一个问题}我只是在提出这个问题时忘记了这一点stackoverflow@Samad是的,有。提交表单时调用
teamValidation()
。在else块中,执行
$('#addForm')。submit()
再次提交表单,然后
返回false
以防止提交完成。我将此脚本用于其他用途validation@Samad你问自己做错了什么,我已经告诉你了。如果您想拒绝更正代码并查看它是否解决了问题,这取决于您。这不是一个编码问题,因为其他浏览器已针对此代码文档执行了此代码,如chorme、safari和etchow。getElemetBYId('addForm')。submit();
function teamValidation(){
    var cat_id = $('#cat_id').val();    

    if(cat_id == "0"){
        alert("Category is invalid...");    
        return false;
    }else{
       return true;
    }
}