我想验证带有ajax的表单,其中有一个复选框字段。
我试过这种方式,但我无法获得复选框字段的值。
我的表格
<form class="Form" action="?">
<input type="text" name="type" id="type" />
<input type="text" name="action" id="action" />
<input type="checkbox" name="chk" id="chk" value="1">
<input type="submit" value="INSERT" />
</form>
MY AJAX
$(".Form").submit(function( event ) {
event.preventDefault();
$.post("control.php", {
type: $("#type").val(),
action: $("#action").val(),
chk: $("#chk").val()
},
function(data){
$("#msg").html(data);
}
});
CONTROL.PHP
// CHECKBOX VALUE
if($_POST["chk"] == 1){
echo "THE VALUE IS 1";
exit;
}
我怎么能这样做?感谢
编辑
我尝试传递控制页面chk但没有成功
$.post("control.php", {
type: $("#type").val(),
action: $("#action").val(),
chk: $("#chk").prop('checked')
},
和
$.post("control.php", {
type: $("#type").val(),
action: $("#action").val(),
$("#chk").prop('checked')
},
如何在ajax帖子中定义复选框字段的名称?感谢
答案 0 :(得分:0)
如果选中该复选框,则返回true:
$("#chk").prop('checked')
在PHP中检查它是这样的:
if(isset($_POST["chk"])) // true
答案 1 :(得分:0)
对于复选框,如果仅选中复选框,则php传递值。所以你可以检查是否收到了PHP页面的复选框。如果收到的用户已选择它或未选择用户,则不会将复选框名称传递给PHP页面。
所以你可以检查
if(isset($ _ POST [“chk”]))
... 如果返回true,则表示用户选中了复选框,如果没有选择用户...
答案 2 :(得分:0)
一种解决方案是在隐藏输入中发送具有相同名称的零值
<input type="hidden" name="chk" value="0">
<input type="checkbox" name="chk" id="chk" value="1">
如果选中chk,隐藏的输入chk将在$ _POST
中被覆盖