即使取消选中该复选框,它仍然会返回值。我通过Ajax请求传递表单并打印返回的值,但是检查或取消选中相同的结果。 Isset也无法正常工作。
<input type="checkbox" value="Agree" id="siteAgreement">
if(!isset($siteAgreement) || !$siteAgreement || $siteAgreement != "Agree"){
//////Unchecked
}
答案 0 :(得分:3)
更改
siteAgreement = $("#siteAgreement").value;
这样的事情:
siteAgreement = $("#siteAgreement").is(':checked') ? $("#siteAgreement").val() : null;
但您还应添加name属性,以便关闭javascript的浏览器也可以使用您的网站。
此外,您可以使用一些自动从表单生成请求的代码(类似jquery.form),因此您无需在更改表单时更新javascript。
答案 1 :(得分:0)
这里试试这个:
if(!isset($_POST['siteAgreement']) || !$_POST['siteAgreement'] || $_POST['siteAgreement'] != "Agree"){
//////Unchecked
}
除非您之前提取变量,否则不会设置$ siteAgreement。您可以使用$_POST['nameofelement']
来访问数据。
答案 2 :(得分:0)
if($_POST["siteAgreement"] !== "Agree") {
//not checked
}
可以正常使用
答案 3 :(得分:0)
您只需要检查它是否已设置。
if(!isset($_POST['siteAgreement'])){
//then it is unchecked
}
另外,您没有为输入命名。你需要放......
<input type="checkbox" name="siteAgreement" value="Agree" id="siteAgreement">
您需要一个名称才能在PHP中访问它。