表单提交无效

时间:2014-03-12 08:40:33

标签: javascript jquery html

如果checkBrowser函数的结果为old,我会使用jQuery提交表单。

<form action="xxx" method="post">
...
<input id="iop" type="submit">
...
</form>

jQuery的:

$("#iop").mousedown(function(e){
    e.preventDefault();
    var status=checkBrowser();
    if(status=='old'){
        $("#iop").submit();
    }
});

我做了什么:

我调试了代码并且它到达了行$("#iop").submit();但没有任何反应。任何想法?

4 个答案:

答案 0 :(得分:4)

您需要在submit()而不是<form>元素上使用<input>。来自 docs

  

当用户尝试时,提交事件将发送到元素   提交表格。它只能附加到元素

if(status=='old'){
    $("form").submit();
}

或更具体地使用 .closest() 在遍历DOM树时获取提交按钮中最接近的匹配form元素:

if(status=='old'){
    $(this).closest('form').submit();
}    

答案 1 :(得分:2)

现在您指的是submit input而不是form

更改此内容:

  $("#iop").submit();

对此:

  $("form").submit();

答案 2 :(得分:1)

不要显式调用submit(),而是让默认操作执行:

$("form").submit(function(e){
    var status=checkBrowser();
    if(status != 'old'){
        e.preventDefault();
    }
});

此外,将处理程序绑定到表单的submit事件,而不是按钮。

答案 3 :(得分:1)

<input id="iop" type="submit">更改为<input id="iop" type="button">

$("#iop").submit();$("form").submit();

试试这个

<form action="xxx" method="post">
<input id="iop" type="button" value="Submit">
</form>
<script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>
<script>
    $(document).ready(function(){
        $("#iop").mousedown(function(e){

    //e.preventDefault();
   // var status=checkBrowser();
   status = "old";

    if(status=='old'){
        $("form").submit();
    }
});
    });
</script>
相关问题