Я пытаюсь пройти через gridview и бросить предупреждение пользователю, если они не заполнили количество на предмет, который они проверили. Но он работает только с первым флажком, и он не возвращает false, потому что код все еще выполняется на стороне сервера.jquery each() только цикл через asp.net gridview один раз
function GetCheckedRows() {
var checkBox = $("#flexCheckBoxList")
var textBox = $("#flexTextBox")
$("#flexGridView tr").each(function() {
if ($(checkBox).is(':checked')) {
if (textBox.val().length === 0) {
alert("You must specify the amount needed");
return false;
}
else {
return true;
}
}
});
}
Завершено! Хотел показать готовый код, который проходит и останавливается, когда что-то не так. Мне пришлось создать переменную, чтобы остановить выполнение цикла. Это не только проверяет пустое значение, но также проверяет, является ли оно тоже.
function GetCheckedRows() {
var exitSubmit = false;
$(".gridView tr").each(function (e) {
var checkBox = $(this).find("input[type='checkbox']");
var textBox = $(this).find("input[type='text']");
if (checkBox.is(':checked')) {
if (textBox.val().length === 0 || !$.isNumeric($(textBox).val())) {
exitSubmit = true;
return false;
}
else {
return true;
}
}
});
if (exitSubmit) {
alert("Please enter a valid amount");
return false;
}
}
его, потому что вы используете id для цикла, делаете их как класс и пытаетесь выполнить цикл – Greenhorn
Функция, которую вы разместили i недостаточно для остановки сообщения формы. Он просто возвращает true/false, что НЕ НИЧЕГО для пользовательского интерфейса, если вы не захватили событие click правильно, например 'click!'. Пожалуйста, разместите остальную часть кода, в частности, ASPX GridView. – Graham
, показывающий разметку сетки, было бы более удобным, ИМХО. – naveen