jquery验证'this.0.form'为null或不是对象

时间:2010-12-15 18:55:55

标签: jquery jquery-validate internet-explorer-7

我的代码导致ie7抛出此错误。 'this.0.form'为null或不是对象 有一个按钮可以触发表单在单击时提交 当发生这种情况时,表单被验证但验证插件。在其他浏览器中,这完美无瑕。在ie7中,它会导致上述错误导致崩溃和烧伤。

$(document).ready(function(){
    //form rotate to next section
    window.section = 1;
    function secnext()
    {
        var current;
        var next;
        var valid;
        current = window.section;        
        //on next validate fields
        //if not valid submit form to return errors and return 0
        switch(current)
        {
            case 1:
            valid = section1();
            break;
            case 2:
            valid = section2();
            break;
            case 3:
            valid = section3();
            break;
            case 4:
            valid = section4();
        }
        if(valid == false) return 0;

        //if(current == 4) next == 0;
        next = current+1;
        if(current == 1) $('#previous').parent().show('slow');
        //hide current
        $('#section'+current).hide('slide',500,function()
        {
            $('#section'+next).show('slide',500);});
            //display next

            //setTimeout(function() { $('#section'+next).slideToggle('slow');}, 300);
            if(next == 4)
            {
                $('#next').parent().hide('slow');
                $('#sendbutton').parent().parent().show('slow');
            }
            window.section = next;
        }
        $('#next').click(function() 
        {
            //$dialog.dialog("open");        
            secnext();
            //setTimeout(function() { $dialog.dialog("close"); }, 1500);    

        });
        // hide section by section if all fields are valid and focus is in different section
        function section1()
        {
            if($('input#fname').valid() &&
            $('input#lname').valid() &&
            $('input#email').valid() &&
            $('input#homephone').valid() &&
            $('select#ismilitary').valid())
            {
                return true;
            } else {
                $('form#creditapp').submit();
                return false;
            }
        }
        function section2()
        {
            if($('input#address').valid() &&
            $('input#city').valid() &&
            $('input#state').valid() &&
            $('input#zip').valid() &&
            $('select#dob_month').valid() &&
            $('select#dob_day').valid() &&
            $('select#dob_year').valid() &&
            $('input#ssn').valid() &&
            $('input#dlnum').valid() &&
            $('input#dlst').valid())
            {
                return true;
            } else {
                $('form#creditapp').submit();
                return false;
            }     
    }
    function section3()
    {
            if($('input#employer').valid() && $('input#workphone').valid() && $('select#employed_year').valid() && $('select#employed_month').valid() 
            && $('select#paymethod').valid() && $('select#incomesrc').valid() && $('input#paychkamount').valid() && $('select#payfreq').valid() 
            && $('input#nextpayday1').valid() && $('input#nextpayday2').valid())
            {
                return true;
            } else {
                $('form#creditapp').submit();
                return false;
            }
    }
    function section4()
    {
            if($('input#bankname').valid() && $('select#acctype').valid() && $('input#routingnum').valid() && $('input#accnum').valid())
            {
                return true;
            } else {
                $('form#creditapp').submit();
                return false;
            }
    }
    /*section1();
    section2();
    section3();
    section4();*/
    /**
     * assign click handler to button
     * on button click reassign focus event to section and hide button
    **/ 
    /*$('.button').click(function(index){
        switch($(this).parent().parent().attr('id'))
        {
            case 'button1':
                $('#button1').slideToggle('slow');
                $('#section1').slideToggle('slow');
                section1();
                break;
            case 'button2':
                $('#button2').slideToggle('slow');
                $('#section2').slideToggle('slow');
                section2();
                break;
            case 'button3':
                $('#button3').slideToggle('slow');
                $('#section3').slideToggle('slow');
                section3();
                break;
            case 'button4':
                $('#button4').slideToggle('slow');
                $('#section4').slideToggle('slow');
                section4();
                break;
        }
    });*/

    function hidesections()
    {
        /*if($('input#fname').valid() && $('input#lname').valid() && $('input#email').valid() && $('input#homephone').valid() && $('select#ismilitary').valid())
        {
            $('#section1').hide('slow');
        }
        if($('input#address').valid() && $('input#city').valid() && $('input#state').valid() && $('input#zip').valid() && $('[name="bday"]').valid() 
        && $('input#ssn').valid() && $('input#dlnum').valid() && $('input#dlst').valid())
        {
            $('#section2').hide('slow');
        }
        if($('input#employer').valid() && $('input#workphone').valid() && $('select#employed_years').valid() && $('select#employed_months').valid() 
        && $('select#paymethod').valid() && $('select#incomesrc').valid() && $('input#paychkamount').valid() && $('select#payfreq').valid() 
        && $('input#nextpayday1').valid() && $('input#nextpayday2').valid())
        {
            $('#section3').hide('slow');
        }
        if($('input#bankname').valid() && $('select#acctype').valid() && $('input#routingnum').valid() && $('input#accnum').valid())
        {
            $('#section4').hide('slow');
        }*/
    }
    //save whole form
    function saveform()
    {
        var data = '';
        $('input').each(function(index) {
            data += $(this).attr('name')+'='+$(this).val()+'&';
        });
        $('select').each(function(index) {
            if($(this).attr('name') != 'employed_years' && $(this).attr('name') != 'dob_month' && $(this).attr('name') != 'dob_day')
            {
                switch($(this).attr('name'))
                {
                    case 'employed_months':
                        value = $('select#employed_years').val() * 12
+ $('select#employed_months').val();
                        data += 'emplength='+value+'&';
                        break;
                    case 'dob_year':
                        value = $('select#dob_month').val()+'/'+$('select#dob_day').val()+'/'+$('select#dob_year').val();
                        data += 'bday='+value+'&';
                        break;
                    default:
                        data += $(this).attr('name')+'='+$(this).val()+'&';
                }
            }
        });
        $.ajax({
           type: "POST",
           url: "submit.php?type=form",
           data: data,
           success: function(msg){
             //alert('Your Application has been sent');
             window.location = "http://www.galleryhomestore.com/success";
           }
         });
    }     //validation $('#creditapp').validate({
        /*groups: {
            bday: "dob_month dob_day dob_year"
        },
        errorPlacement: function(error, element) {
            if (element.attr("name") == "dob_month" 
                     || element.attr("name") == "dob_day" || element.attr("name") == "dob_year")
                error.insertAfter("#dob_year");
            else
                error.insertAfter(element);
        },*/
        submitHandler: function() {
            //alert('submitted');
            /*
            bday and years employed

            */
            //if($('#dob_day').val() != 'day' && $('#dob_month').val() != 'month' && $('#dob_year').val() != 'year' && $('#employed_month').val() != 'month' && $('#employed_year').val() != 'year')
            //{
                $('div#form').slideToggle('slow');
                $('#sending').slideToggle('slow');
                saveform();
            //}        
        }
    });

1 个答案:

答案 0 :(得分:0)

我遇到同样的问题,除了我几乎无法找到。

您的问题,如果您还没有找到它,则是由提交处理程序之前的注释掉的逗号引起的。

   },*/
        submitHandler: function() {