#jquery #html #click
#jquery #HTML #нажмите
Вопрос:
У меня есть div «addRow», и при нажатии на этот div я добавляю строку в таблицу с помощью Jquery. Как только я завершаю добавление 5 строк и дальнейшее нажатие на div, появляется предупреждение «Превышено количество строк». Как показывать ошибку только один раз при повторном нажатии div снова и снова.
$('#AddRow').click(function () {
//Check total rows
var maxNuber = 5;
var rowCount = $('#tblTest tr').length;
if (rowCount < maxNuberOfFilters){
AddRowToTable();
}
else{
alert("Rows exceeded");
}
});
Комментарии:
1. Удалить обработчик щелчка в этот момент?
2. @j08691, который выполняется в предположении, что Chandana хочет, чтобы обработчик щелчков удалялся при превышении максимального количества строк. Мне кажется, что он только хочет, чтобы оповещение было отключено.
Ответ №1:
Это сработает для вас
var rowCount = 1;
$('#AddRow').on('click','', function() {
if (rowCount <= 5){
rowCount ; //replace with your logic and conditions...
}
else{
alert("Rows exceeded");
$('#AddRow').off('click');
}
});
Рабочий пример — http://jsfiddle.net/Hnuc7 /
Ответ №2:
существует множество способов выполнения этой работы, но в отношении того, что у вас есть, я могу предложить следующее :
$('#AddRow').click(function () {
//Check total rows
var maxNumber = 5;
var rowCount = $('#tblTest tr').length;
if (rowCount < maxNumber){
AddRowToTable();
}
else if(rowCount == maxNumber){
alert("Rows exceeded");
rowCount ;
}
});
Комментарии:
1. Это приведет к неточному количеству строк. Допустим, пользователь нажимает на #addRow 7 раз. Тогда количество строк будет равно 7, но фактическое количество строк все равно будет равно 5.
Ответ №3:
Попробуйте это:
var rowsExceeded = false;
$('#AddRow').click(function () {
//Check total rows
var maxNuber = 5;
var rowCount = $('#tblTest tr').length;
if (rowCount < maxNuberOfFilters){
AddRowToTable();
}
else{
if (!rowsExceeded) {
alert("Rows exceeded");
rowsExceeded = true;
}
}
});
По сути, я просто добавил логическую переменную, которая становится true, если строки превышены один раз. С этого момента переменная всегда будет иметь значение true, поэтому оповещение никогда не будет выполнено.
Преимущество этого метода заключается в том, что обработчик событий не отключается при превышении максимального количества строк.