【问题标题】:A single checkbox input incorrectly passing the value [duplicate]单个复选框输入错误地传递了值[重复]
【发布时间】:2026-02-08 19:50:01
【问题描述】:

我在这里花了几个小时查看所有相关答案,但我仍然无法弄清楚为什么会发生这种情况。

我正在尝试从用户那里获得是/否类型的答案。

我正在使用以下复选框输入。我可以使用单选按钮并可能使其工作,但我希望它成为单个复选框用户界面是有原因的。

问题:无论我选中还是取消选中复选框,总是将“0”传递给服务器。当我选中复选框时,我期望“1”。

html:

<input type="hidden" name="hardtofind" id="hardtofindField" value="0">
<input type="checkbox" name="hardtofind" id="hardtofindField" value="1">I'm having hard time finding information I'm looking for<br>
<input type="button" id="submitButton" class="rbutton" value="Submit">

jquery:

<script>
jQuery(document).ready(function(){
jQuery("#submitButton").click(function(event){
var hardtofind = jQuery("#hardtofindField").val();
jQuery.ajax({
url : "../send_form_email.php",
data : {
"hardtofind" : hardtofind,     
},
method : "GET",
success : function(){
jQuery("#submitButton").hide();
jQuery("#successMsg").show();
}
});
event.preventDefault();
});
});
</script>

php:

session_start();
if(isset($_GET['hardtofind']) && !empty($_GET['hardtofind']) ){
$hardtofind = $_GET['hardtofind']; 
}

更新:

感谢您指出重复的 ID。我在尝试解决原始问题时引入了该问题。

当我删除隐藏文件时(所以没有重复的 ID)。我仍然遇到同样的问题,现在它总是通过“1”。

我需要进行哪些更改,以便在未选中单个复选框时传递“0”而在选中时传递“1”?

新的html:

<input type="checkbox" name="hardtofind" id="hardtofindField" value="1">I'm having hard time finding information I'm looking for<br>
<input type="button" id="submitButton" class="rbutton" value="Submit">

非常感谢您抽出宝贵时间。

【问题讨论】:

标签: javascript php jquery html checkbox


【解决方案1】:

你的 jQuery 正在拾取这个元素,因为它是第一个匹配项:

<input type="hidden" name="hardtofind" id="hardtofindField" value="0">

...其值为 0,并将其发送到服务器。

使用不同的 id 以获得预期的结果。

【讨论】:

    最近更新 更多