В таблицу добавляется строка по кнопке щелкните, используя приведенный ниже jQuery:
Код: Выделить всё
$('table tbody').append(
'' +
'' +
'[i]' type="text" minlength="11" maxlength="11" placeholder="Enter telephone number" />' +
'' +
'' +
'' +
'' +
'Select an option' +
'Test 1' +
'Test 2' +
'' +
'' +
'' +
'' +
'[/i]' +
'' +
'' +
''
)
Это весь код, который я пробовал, но он всегда отображает мое сообщение об ошибке.
Сценарий проверки:
[*]В таблице имеется более одной строки
Ввод, который был изменен (будь то обновление существующего значения ввода или добавление числа в новый пустой ввод)
Исходное

Нажата кнопка

Это jQuery, который я пытался использовать, но всякий раз, когда у меня есть 2 строки в таблице он добавляется в мой if и отображает сообщение об ошибке, даже если номер телефона еще не указан.
Я пробовал использовать массив и различные if код> операторы. Вероятно, это проще, чем я думаю, но я в тупике, «слеп по коду» и не могу придумать код, который сделает это правильно.
Код: Выделить всё
$(document).on('focusout', 'input[name="Associated Numbers"]', function() {
// $(document).on('blur', 'input[name="Associated Numbers"]', function() {
const enteredNum = this.value
let rowCount = 0
let errorMsgTxt = ''
let existingNumbers = []
// let rowIndex = $(this).closest('#associated-num-tbl tbody tr').index()
// $('#associated-num-tbl tbody tr').each(function() {
// rowCount++
//
// // if (rowIndex !== $(this).index() && rowCount > 1) {
// if (rowCount > 1) {
// $(this).find('input').each(function () { //
// if (enteredNum === this.value && rowIndex !== $(this).index()) {
// errorMsgTxt = 'has already been added'
//
// return false
// }
// })
// }
// })
$('#associated-num-tbl tbody tr').each(function() {
rowCount++
$(this).find('input').each(function () {
existingNumbers.push(this.value)
})
})
if (rowCount > 1) {
$.each(existingNumbers, function (i, number) {
if (number === enteredNum && number !== '') {
// if (number === enteredNum) {
$(this).closest('tr').find($('div[name="assoc-num-error-msg"]')).text('Number has already been added').show(0, function () {
$(this).closest('td').find('input').trigger('focus')
})
return false
}
});
}
});

Как видите, этого числа в таблице не существует.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-jquery
Мобильная версия