ожидаемый объект – jquery
-
03-07-2019 - |
Вопрос
я получаю сообщение об ошибке «Ожидается объект» по какой-то странной причине из-за jquery, и это не «отправляет» форму или не вводит данные в базу данных.
без jquery данные можно было бы ввести в базу данных.но сейчас это не так.
я использовал jquery в основном для проверки элементов управления asp.net.
roosteronacid, проверки работают отлично, и свойство id тоже такое же.отправка просто не выполняет код на стороне сервера, и я не могу понять, в чем проблема.
РЕДАКТИРОВАТЬ:
это код 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/
Решение
Ожидаемый объект возникает при попытке доступа к объекту, который не определен, не указан или ошибочно написан с ошибкой.Проверьте, какой объект ожидается.Используйте Firefox Firebug для отладки вашего JavaScript или выполните отладку с включенным IE, чтобы получить объект, который среда выполнения не может найти....
Другие советы
Я решил эту проблему, правильно обратившись к файлу JQuery.Он находился в подкаталоге, и у меня не был правильный путь.
ответ здесь: кнопка отправки не запускает серверный код
«отладка» должна быть установлена как ложная.
Я предполагаю, что ошибка связана с использованием плагина проверки 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.
У меня была та же проблема, но на нашем промежуточном сервере.Сравнение файлов показало, что они одинаковы, и размещение одних и тех же файлов на разных сайтах не вызвало проблем, поэтому мы размещали файлы на конкретном сайте.После устранения неполадок проблема заключалась в том, что мы установили параметр файла Footer.html в свойствах веб-сайта в IIS, поэтому сервер внедрял его в скрипт при рендеринге.Таким образом, нарушаем любой хороший совместимый код.Мы отключили свойство нижнего колонтитула в настройках IIS — бинго!
Я тоже сталкиваюсь с этой проблемой.но в моем случае у меня была версия jquery, проблема есть.Я установил последнюю версию, и она отлично работает в IE.