object expected - jquery

2019-06-03 02:54发布

问题:

i'm getting an error 'Object expected' for some odd reason due to jquery, and this does not 'submit' the form or enter the data into database.

without jquery, the data could be entered into the database. but now it doesn't.

i've used jquery mainly for validating asp.net controls.


roosteronacid, the validations are working perfectly fine and the id property is also the same. the submit is just not executing the server-side code and i cannot figure out what is the problem.

EDIT:

this is jquery code:

 <script type="text/javascript">
        $(document).ready(function() {
            // add custom validation methods
            $.validator.addMethod('phone', function(value, el, params) {
                return this.optional(el) || /^[0-9,+,(), ,]{1,}(,[0-9]+){0,}$/.test(value);
            }, 'Please enter a valid phone number');

            $.validator.addMethod('numbers', function(value, el, params) {
                return this.optional(el) || /^[0-9]+$/.test(value);
            }, 'Invalid entry. Only Numeric is allowed.');


            $.validator.addMethod('domainurl', function(value, el, params) {
                return this.optional(el) || /^(http\:\/\/(?:www\.)?[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*(?:\.[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*)*\.[a-zA-Z]{2,4}(?:\/)?)$/.test(value);
            }, 'Please enter a valid domain url');


            $.validator.addMethod('selectone', function(value, element) {
                return this.optional(element) || (value.indexOf("none") == -1);
            }, 'Please select an option.');



            $("#form1").validate({
                debug: true,
                rules: {
                    txt_name: {
                        required: true,
                        minlength: 2
                    },
                    txt_cmp: {
                        required: true,
                        minlength: 2
                    },
                    txt_tel1: {
                        phone: true,
                        required: true,
                        minlength: 3

                    },
                    txt_tel2: {
                        phone: true,
                        required: false,
                        minlength: 3

                    },
                    txt_mob: {
                        phone: true,
                        required: false,
                        minlength: 9

                    },
                    txt_email: {
                        required: true,
                        email: true
                    },

                    txt_domname: {
                        required: true,
                        domainurl: true
                    },

                    radiobt_domain: "required",

                    ddl_yremail: {
                        required: true,
                        selectone: true
                    },
                    ddl_email: {
                        required: true,
                        selectone: true
                    },

                    txt_space: {
                        required: true,
                        numbers: true

                    },
                    txt_calfr: {
                        required: true
                    },
                    txt_calto: {
                        required: true
                    }  


            },
            messages: {
                txt_name: {
                    required: "This field is required",
                    minLength: "Please enter a valid name"
                },
                txt_cmp: {
                    required: "This field is required",
                    minLength: "Please enter a valid commpany name"
                },
                txt_tel1: {
                    required: "This field is required",
                    minLength: "Please enter a valid telephone number"

                },
                txt_tel2: {
                    minLength: "Please enter a valid telephone number"
                },
                txt_mob: {
                    minLength: "Please enter a valid mobile number"

                },
                txt_email: {
                    email: "Please enter a valid email address",
                    required: "This field is required"
                },

                txt_domname: {
                    required: "This field is required"
                },
                radiobt_domain: "Select the Hosting Type"
            }

        });
    });
    </script>

is there anything wrong with the code?

it says object expected at line 559. i checked the jquery.validate.js file and this is the code it shows:

addWrapper: function(toToggle) {
            if ( this.settings.wrapper )
                toToggle = toToggle.add( toToggle.parents( this.settings.wrapper ) );
            return toToggle;
        }

the jquery code displays all the errors at the right places, but once corrected, it doesn't submit the data.

the plugin i am using:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

回答1:

Object expected occur when you try to access object which is not defined, not referenced or mistakenly misspelled. Check out which object is expected. Use Firefox firebug to debug your javascript or make debugging with IE on to get hold of an object which runtime is not able to find....



回答2:

I solved this problem by properly referring to the JQuery file. I had it in a subdirectory and did not have the path correct.



回答3:

answer here: submit button does not trigger server-side code

'debug' should be set as false.



回答4:

My guess is that the error is in your use of the jQuery validation plug-in. Try to validate only one ASP.NET control. This will make the error easier to spot:

$("#form1").validate({
    rules: {
       id_of_control_you_know_exists_in_the_rendered_html: {
            required: true,
            minlength: 2
        }
    }
});

Another possibility could be that you are using ASP.NET controls in a user control. In that case the id-property of the rendered HTML input control is different from what you set it to in your .aspx page.



回答5:

I had the same issue but on our staging server. Comparing files showed they were the same and hosting the exact same files on different sites had no issue so it had to be the specific site we were putting files on. The culprit after troubleshooting was that we set a Footer.html file setting in the properties for the website in IIS, so the server was injecting it inside the script on render. Therefore breaking any good compliant code. We turned off the footer property on the IIS setting - bingo!



回答6:

I also face this prob. but in my case i was jquery version prob is there. I put latest version and it working greate in IE.