jquery验证-单击“验证”;提交;选中复选框

jquery验证-单击“验证”;提交;选中复选框,jquery,ajax,forms,Jquery,Ajax,Forms,我有一个脚本来验证表单(使用),然后提交数据。它目前工作得很好,但现在我需要添加一个复选框,我不清楚如何使用jquery/ajax提交值。我是否需要包含类似于$('#checkBox').attr('checked')?如果是这样,我如何将其传递给ajax 另外,当我在没有填写表单的情况下单击“提交”时,复选框会自动进行检查。为什么会这样 jquery: <script> $(document).ready(function(){ $("#formid").validate(

我有一个脚本来验证表单(使用),然后提交数据。它目前工作得很好,但现在我需要添加一个复选框,我不清楚如何使用jquery/ajax提交值。我是否需要包含类似于
$('#checkBox').attr('checked')?如果是这样,我如何将其传递给ajax

另外,当我在没有填写表单的情况下单击“提交”时,复选框会自动进行检查。为什么会这样

jquery:

<script>
$(document).ready(function(){
    $("#formid").validate({
        rules: {
            name: "required",
            email: {
                required:   true,
                email:      true
            },
            mobile: {
                required:   true,
                minlength:  10
            },
            news: {
                required:   false,
            }
        },
        messages: {
            name:   "Please enter your name",
            email:  "Please enter a valid email address",
            mobile: "Please enter your mobile number"
        },
        submitHandler: function() {
                var name        = $('#name').attr('value');
                var email       = $('#email').attr('value'); 
                var mobile      = $('#mobile').attr('value');
                var news        = $('#news').attr('value');

                $.ajax({
                    type: "POST",
                    url: "ajax.php",
                    data: $("#formid").serialize(),
                    success: function(){
                        $('form#formid').hide();
                        $('div.success').fadeIn();
                    }
                });
            return false;
        }
    });
});
</script> 

$(文档).ready(函数(){
$(“#formid”)。验证({
规则:{
名称:“必需”,
电邮:{
要求:正确,
电子邮件:真的
},
流动电话:{
要求:正确,
最小长度:10
},
新闻:{
必填项:false,
}
},
信息:{
姓名:“请输入您的姓名”,
电子邮件:“请输入有效的电子邮件地址”,
手机:“请输入您的手机号码”
},
submitHandler:function(){
var name=$('#name').attr('value');
var email=$('#email').attr('value');
var mobile=$('#mobile').attr('value');
var news=$('#news').attr('value');
$.ajax({
类型:“POST”,
url:“ajax.php”,
数据:$(“#formid”).serialize(),
成功:函数(){
$('form#formid').hide();
$('div.success').fadeIn();
}
});
返回false;
}
});
});
表格:

<form id="formid" method="post">
    <fieldset>
        <div>
            <label for="name">Name</label>
            <input type="text" id="name" name="name" class="required"  />
        </div>

        <div>
            <label for="email">Email</label>
            <input type="text" id="email" name="email" class="required" />
        </div>

        <div>
            <label for="mobile">Mobile</label>
            <input type="text" id="mobile" name="mobile" class="required" />
        </div>
        <label for="news"><p>Please don&rsquo;t send me ongoing news</p>
        <input type="checkbox" id="news" name="news" value="No" />

    <label for="submit1" id="submit"><span>&nbsp;</span>
        <input id="submit1" type="submit" name="submit" value="Submit"/>
        </label>
    </fieldset>
</form>

名称
电子邮件
可移动的
请不要;Don’不要给我发新闻


前面已经讨论过这一点。到的链接也应该有所帮助


请注意,jquery serialize仅在选中复选框时才会包含复选框值。

您有一个未关闭的
标签,浏览器正在扩展该标签,以包含
复选框和
提交按钮

<label for="news">
    <p>Please don&rsquo;t send me ongoing news</p>
    <input type="checkbox" id="news" name="news" value="No" />
<!-- should close news label here -->    
<label for="submit1" id="submit">
    <span>&nbsp;</span>
    <input id="submit1" type="submit" name="submit" value="Submit"/>
</label>

请不要;Don’不要给我发新闻

这会导致
复选框
提交
的行为与单击其中一个复选框时单击的行为相同

修复标记应该可以解决您的问题