防止对表单的一部分进行验证 - PHP

时间:2014-05-13 05:00:05

标签: jquery html forms validation

我有一个表格,可以选择相同或不同的地址。

                                <label for="lastname"> Last Name <small>required</small>
                                <input type="text" name="s.lastname" value="<?php echo $value['s_lastname'];?>" placeholder="Last Name" required />
                            </label>
                            <label for="email"> Email <small>required</small>
                                <input type="text" name="s.email" value="<?php echo $value['email'];?>" placeholder="Your Email" required pattern="email"/> 
                                <small class="error">Email is not valid.</small>                               
                            </label>
                            <label for="phone"> Phone
                                <input type="text" name="s.phone" value="<?php echo $value['s_phone'];?>" placeholder="Phone number" />                                                               
                            </label>


    <!-- this is same radio button -->
                <fieldset>
                    <legend>Shipping and billing address the same?</legend>
                        <input checked type="radio" name="checkoutaddress" value="same"/><label for="same">Yes</label>
                        <input type="radio" name="checkoutaddress" value="different"/><label for="different">No</label>
                </fieldset
<!-- this is same radio button end -->


 <label for="lastname"> Last Name <small>required</small>
                                <input type="text" name="b.lastname" value="<?php echo $value['b_lastname'];?>" placeholder="Last Name" required />
                            </label>
                            <label for="b.email"> Email <small>required</small>
                                <input type="text" name="b.email" value="<?php echo $value['email'];?>" placeholder="Your Email" required pattern="email"/> 
                                <small class="error">Email is not valid.</small>                               
                            </label>
                            <label for="b.phone"> Phone
                                <input type="text" name="b.phone" value="<?php echo $value['b_phone'];?>" placeholder="Phone number" />                                                               
                            </label>

然后我有一个jquery脚本来检查是否检查了相同的单选按钮&#34; b&#34;表格的一部分将被折叠。

    $("input[name$='checkoutaddress']").click(function() {
    var checkShip = $(this).val();

    $("div.checkship").hide();
    $("#checkoutaddress" + checkShip).show();
});

问题是所有字段都是必填字段。因此,如果我单击“提交”按钮,将阻止我提交表单。 这是我的问题: 有没有办法阻止&#34; b&#34;要检查的表格的一部分或使表格中不存在,所以如果我检查相同的单选按钮,我可以提交表格。

先谢谢!

2 个答案:

答案 0 :(得分:1)

different添加ID,使选择器查询变得简单。向fieldset添加id optional "b" elements,以便轻松切换要求。检查是否选中了different,然后使用required标记相应地更新字段。

$('#itsdifferent').on('click', function(){
    var $this = this;
    $('#optionbfieldset input').each(function(){
        if($this.checked){
            $(this).prop('required', true);
        }else{
            $(this).removeProp('required');
        }
    });
});

答案 1 :(得分:1)

从发货地址的标签中删除“必需”。 选中单选按钮并折叠表单的b部分后,您需要启用所需的标记。这样做:

ValidatorEnable(document.getElementById(''),true);

相反,您可以在开头将其设置为默认值,如果选择了无单选按钮则禁用。