通过单击复选框jquery提交表单不起作用

时间:2014-09-05 13:06:01

标签: jquery forms

单击复选框时,应提交表单,但这不会发生。一个简单的警报(作为测试)确实有效。它出了什么问题?

HTML

<form id="formId" name="formName" action="index.php" method="post">
<input name=entry>
<input type="checkbox" class="checkbox1">1
<input type="checkbox" class="checkbox2">2
<input type="checkbox" onclick="this.form.submit();">5
<input type="submit" name="submit" >
</form>

JS

<script type="text/javascript">

$(document).ready(
  function(){ 
    $(".checkbox1").click(
        function(){ 
            alert('checkbox 1 clicked'); 
        }
    )
    $(".checkbox2").click(
        function(){ 
            $('#formId').submit();
        }
    )
    }
);
</script>

4 个答案:

答案 0 :(得分:2)

忽略下面的第一个问题,我可以看到您的表单不会通过提交按钮以外的任何按钮提交。

我的解决方法是在提交按钮上发送trigger click个事件,而不是尝试使用.submit()提交表单:

e.g。 http://jsfiddle.net/tkdxg66m/1/

$(".checkbox2").click(
    function(){ 
        $('#submitme').trigger('click');
    }
)

这是非常奇怪的行为,因为submit()应该有效,所以我会进一步研究它。


以下较旧的答案/问题:

您已将代码包装在一个从未调用过的函数中:

你可能想要使用像这样的DOM就绪处理程序:

       $(function(){
            $(".checkbox1").click(
                function(){ 
                    alert('checkbox 1 clicked'); 
                }
            )
            $(".checkbox2").click(
                function(){ 
                    $('#formId').submit();
                }
            )
        });

注意:$(function(){your code});$(document).ready(function(){your code});

的快捷方式

或IIFE(立即调用的函数表达式)执行如下:

       (function(){ 
            $(".checkbox1").click(
                function(){ 
                    alert('checkbox 1 clicked'); 
                }
            )
            $(".checkbox2").click(
                function(){ 
                    $('#formId').submit();
                }
            )
        })();

DOM ready选项在这种情况下更有意义:)

答案 1 :(得分:1)

只需使用下面的jQuery代码即可。它适用于提交表格。

$(document).ready(function(e) {
    $(".checkbox2").click(
        function(){ 
           $("#formId").submit();
        }
    );
});

答案 2 :(得分:0)

将“点击”更改为“更改” - 我同意“点击”应该有效,但它并不总是对我来说= /

答案 3 :(得分:0)

Waddayaknow,问题解决了! 事情是:我将提交按钮命名为“提交”。这导致了问题。我在其他stackoverflow-threads中找到了这个; (submit a form using checkbox)和:(Javascript form submit: Object doesn't support this property or method (IE7))。无论如何,感谢您的贡献。