jQuery - 撤消防止默认

时间:2017-03-27 11:37:10

标签: javascript jquery forms preventdefault unbind

我有多个复选框,其中一个必须进行检查。 点击提交"标记"第一次一切正常。是的,并且preventDefault()正常工作。

但是"解开"如果" flag"是假的。

如果未填写其他必填字段,也不应提交表格。

<form action="submit/submitPref.php" method="post" onSubmit="return myvalidate()">
        <div class="section mt">
            <p class="my_comp">My Compensation Package can be</p>
            <div class="clearfix"> </div>
        </div>
        <div class="clearfix"> </div>
        <div class="section pre_btm compn">
            <div class="col-xs-6 pr-none half pl0 mrgrht">
            <p>Salary Only per Year</p>
            <input name="salOnlyPY" type="checkbox" class="chk txtrht" value="1">
            </div>
            <div class="col-xs-6 pr-none half pl0 mrgrht">
                <p>Salary Only per Hour</p>
                <input name="salOnlyPH" type="checkbox" class="chk txtrht" value="1">
            </div>
            <div class="col-xs-6 pr-none half pl0 mrgrht">
                <p>Salary with Bonus</p>
                <input name="salWithBonus" type="checkbox" class="chk txtrht" value="1" />
            </div>
            <div class="col-xs-6 pr-none half pl0 mrgrht">
                <p>Commission Only</p>
                <input name="commOnly" type="checkbox" class="chk txtrht" value="1">
            </div>
            <div class="col-xs-6 pr-none half pl0 mrgrht">
                <p>Salary & Commission</p>
                <input name="salNcomm" type="checkbox" class="chk txtrht" value="1">
            </div>
            <div class="clearfix"> </div>
        </div>

        <!--THE FORM ALSO HAS OTHER MANDATORY FIELDS-->
    </form>

    $(document).ready(function(){

        function myvalidate() {
            flag=true;

            $('.txtrht:checked').each(function(){
                flag=false;
            });
            if(flag){
                $('.my_comp').addClass('required');
                $("form").submit(function(e){
                    e.preventDefault();
                });
            }
            else
            {
                if($('.my_comp').hasClass('required'))  
                { $('.my_comp').removeClass('required'); }  
                $("form").submit(function(e){
                    e.preventDefault();
                    $(this).unbind('submit').submit();
                });
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

看起来你不需要解开。尝试将$(this).unbind('submit').submit();更改为$(this).submit();