0

我想用 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>

我的阿贾克斯

  $(".Form").submit(function( event ) {

   event.preventDefault();

   $.post("control.php", {

    type: $("#type").val(),
    action: $("#action").val(),
    chk: $("#chk").val()
    },

    function(data){

        $("#msg").html(data);

    }
});

控制.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 帖子中定义我的复选框字段的名称?谢谢

4

3 回答 3

0

对于复选框,如果仅选中复选框,则 php 传递值。所以您可以检查是否收到了 PHP 页面的复选框。如果接收到的用户选择了它或者用户没有选择,则没有复选框名称传递到 PHP 页面。

所以你可以检查

if(isset($_POST["chk"]))

...如果返回true,则表示用户选中复选框,如果不是用户未选中...

于 2013-10-21T13:30:46.993 回答
0

一种解决方案是在隐藏输入中发送一个同名的零值

<input type="hidden" name="chk" value="0">
<input type="checkbox" name="chk" id="chk" value="1">

如果 chk 被选中,隐藏的输入 chk 将在 $_POST 中被覆盖

于 2013-10-21T13:39:09.073 回答
0

如果选中该复选框,则返回 true:

$("#chk").prop('checked')

在 PHP 中检查它是这样的:

if(isset($_POST["chk"])) // true
于 2013-10-21T13:24:47.890 回答