У меня есть веб-форма ASP. NET C#, которая использует jquery для проверки пользовательского ввода до того, как этот ввод будет обработан сервером. Когда я говорю «проверить», я имею в виду, что проверяю, ввел ли мой пользователь данные в определенные обязательные поля, прежде чем что-то еще произойдет. Эта проверка связана с событием OnClientClick элемента управления «кнопка» ASP. NET. Если клиентский сценарий обнаруживает отсутствующие данные, он возвращает false. В противном случае срабатывает событие OnClick кнопки.
<asp:Button ID="submitBtn"
OnClientClick="if (!addBtnClick(event)) { return false; }"
UseSubmitBehavior="false"
runat="server" Text="Submit" OnClick="submitBtn_Click" />
Проверяемые входные данные состоят из текстовых полей и раскрывающихся списков, оба из которых закодированы на странице как серверные элементы управления и отмечены как требуемые значением класса . Я проверяю значение этих входов по одному, используя функцию "each", и получаю значение проверяемого входа с помощью "$ (this) .val ()".
$(cls).each(function () {
var val = $(this).val();
// do other stuff
});
Моя проблема заключается в том, что это каким-то образом вызывает ошибку «Недопустимый аргумент обратной передачи или обратного вызова», и я знаю, что виновником является «$ (this) .val ()», потому что если я закомментирую только это, передав какое-то общее значение c в моя переменная, например, мое приложение работает нормально.
Я пытался зарегистрировать свой jquery код с помощью RegisterClientScript, но это ничего не меняет. Кто-нибудь видел это раньше?
EDIT: «$ (this) .val ()» продолжает выдавать эту ошибку, даже если серверная сторона не задействована. Я использую этот код для сброса моей формы, очищая все поля ввода. После публикации этого сообщения мне пришло в голову, что к некоторым из моих текстовых полей прикреплены прослушиватели событий, так что, может быть, здесь возникает ошибка?
Оказывается, нет. Даже если мои слушатели событий закомментированы, я все равно получаю ошибку на стороне клиента. Я могу использовать «$ ('input'). Val ('')» без проблем, но это очищает все поля ввода, и мне нужно иметь возможность игнорировать некоторые из них.