Ajax POST - 获取验证的复选框值

时间:2013-10-21 13:22:15

标签: ajax jquery

我想验证带有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帖子中定义复选框字段的名称?感谢

3 个答案:

答案 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

中被覆盖