1

即使未选中该复选框,它仍会返回值。我通过 Ajax 请求传递表单并打印返回的值,但检查或未检查的结果相同。Isset 也无法正常工作。

<input type="checkbox" value="Agree" id="siteAgreement">

if(!isset($siteAgreement) || !$siteAgreement || $siteAgreement != "Agree"){
//////Unchecked
}
4

4 回答 4

3

改变

siteAgreement = $("#siteAgreement").value;

像这样:

siteAgreement = $("#siteAgreement").is(':checked') ? $("#siteAgreement").val() : null;

但是您还应该添加名称属性,以便关闭 javascript 的浏览器也可以使用您的站点。

您还可以使用一些从表单自动生成请求的代码(例如jquery.form),因此您不必在更改表单时更新 javascript。

这里的例子:http: //jsfiddle.net/RhasK/

于 2013-01-11T19:07:57.827 回答
0

在这里试试这个:

 if(!isset($_POST['siteAgreement']) || !$_POST['siteAgreement'] || $_POST['siteAgreement'] != "Agree"){
 //////Unchecked
 }

除非您之前提取了变量,否则不会设置 $siteAgreement。您可以使用$_POST['nameofelement']来访问数据。

于 2013-01-11T18:09:04.737 回答
0
if($_POST["siteAgreement"] !== "Agree") {
//not checked
}

会正常工作

于 2013-01-11T18:10:54.033 回答
0

您只需要检查它是否已设置。

if(!isset($_POST['siteAgreement'])){
//then it is unchecked
}

另外,您没有给输入命名。你需要放...

<input type="checkbox" name="siteAgreement" value="Agree" id="siteAgreement">

您需要一个名称才能在 PHP 中访问它。

于 2013-01-11T18:12:20.617 回答