使用jQuery和POST的表单值 - 单一复选框

时间:2014-10-29 23:51:28

标签: javascript php jquery post checkbox

这会成功返回结果,但结果对我没用。在php文件中,我有这个简单的代码:var_dump($ _ POST ['rememberMe']);

是否标记了复选框,结果是字符串(2)“on”。如何根据复选框是否标记来获得更改的结果?

感谢。

Remember Me: <input type="checkbox"
                    id="remember">

<div id="result" style="margin-top:20px;">


<script>

$("#submit").click(function(){
    submitLogin();
});

$("#password").keyup(function (f){
    if (f.keyCode == 13) {
        submitLogin();
    }
});


function submitLogin(){
    $.post("php/test.php", { 
        loginUsername:$('#username').val(), 
        loginPassword:$('#password').val(),
        rememberMe:$('#remember').val()
    }, function(data){
        $("#result").text(data);
    });
}

</script>

3 个答案:

答案 0 :(得分:1)

对于复选框,value属性是必需的,默认为on。这适用于是否选中复选框,值始终相同。你想要的是检查复选框的状态(而不是它的值)。

$('#remember').prop("checked")

顺便说一下,这比.is(:checked)快,请参阅http://jsperf.com/prop-vs-ischecked/5进行比较。

答案 1 :(得分:0)

如果您通过post $(“form”)序列化您发送的表单,那就更好了.serialize();然后,在目标页面中,只检查$ _POST ['rememberMe']是否存在。 (如果未选中该复选框,则$ _POST ['rememberMe']的isset将等于false)

答案 2 :(得分:0)

此:

rememberMe:$('#remember').val()

需要成为:

rememberMe:$('#remember').is(':checked')