这成功地返回了一个结果,但结果对我来说毫无用处。在php文件中,我有一个简单的代码:var_dump($_POST['memberMe']);
无论是否标记复选框,结果都是字符串(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>
复选框的value属性是必需的,默认为on
。这适用于无论是否选中复选框,值始终相同。您想要的是检查复选框的状态(而不是其值)。
$('#remember').prop("checked")
顺便说一句,这比.is(:checked)
快得多,请参阅http://jsperf.com/prop-vs-ischecked/5以便进行比较。
最好是序列化通过post$("form").serialize()发送的表单;然后,在目标页面中,只需检查$_POST['memberMe']是否存在。(如果未选中复选框,则$_POST['memberMe']的isset将等于false)
这:
rememberMe:$('#remember').val()
需要成为:
rememberMe:$('#remember').is(':checked')