ожидаемый объект - jquery - PullRequest
1 голос
/ 04 мая 2009

Я получаю сообщение об ошибке «Ожидается объект» по какой-то странной причине из-за jquery, и это не «отправляет» форму или вводит данные в базу данных.

без jquery, данные могут быть введены в базу данных. но сейчас это не так.

Я использовал jquery в основном для проверки элементов управления asp.net.


roosteronacid, валидации работают отлично и свойство id тоже одинаковое. отправка просто не выполняет серверный код, и я не могу понять, в чем проблема.

EDIT:

это код jquery:

 <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>

что-то не так с кодом?

он говорит, что объект ожидается в строке 559. Я проверил файл jquery.validate.js, и это код, который он показывает:

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

код jquery отображает все ошибки в нужных местах, но после исправления не передает данные.

плагин, который я использую:

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

Ответы [ 6 ]

8 голосов
/ 04 мая 2009

Ожидаемый объект возникает, когда вы пытаетесь получить доступ к объекту, который не определен, на который нет ссылки или ошибочно написан. Проверьте, какой объект ожидается. Используйте Firefox Firebug для отладки вашего JavaScript или выполните отладку с помощью IE, чтобы получить объект, который во время выполнения не может найти ....

2 голосов
/ 24 февраля 2011

Я решил эту проблему, сославшись на файл JQuery. У меня было это в подкаталоге и не было правильного пути.

1 голос
/ 06 мая 2009

ответ здесь: кнопка отправки не вызывает серверный код

'debug' должен быть установлен как false.

0 голосов
/ 26 июля 2010

Я тоже сталкиваюсь с этой проблемой. но в моем случае я был jquery-версия проба есть. Я поставил последнюю версию, и она отлично работает в IE.

0 голосов
/ 10 декабря 2009

У меня была такая же проблема, но на нашем промежуточном сервере. Сравнение файлов показало, что они одинаковы, и размещение одинаковых файлов на разных сайтах не представляло проблемы, поэтому это должен был быть конкретный сайт, на который мы помещали файлы. Преступник после устранения неполадок заключался в том, что мы установили параметр файла Footer.html в свойствах веб-сайта в IIS, чтобы сервер вставлял его в сценарий при визуализации. Поэтому нарушать любой хороший совместимый код. Мы отключили свойство нижнего колонтитула в настройках IIS - бинго!

0 голосов
/ 06 мая 2009

Полагаю, ошибка в том, что вы используете плагин проверки jQuery. Попробуйте проверить только один элемент управления ASP.NET. Это облегчит обнаружение ошибки:

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

Другая возможность может заключаться в том, что вы используете элементы управления ASP.NET в пользовательском элементе управления. В этом случае свойство id визуализированного элемента управления вводом HTML отличается от того, которое вы установили на своей странице .aspx.

...