Проверьте, находится ли введенное число уже в таблице, используя jQuery.Jquery

Программирование на jquery
Ответить
Anonymous
 Проверьте, находится ли введенное число уже в таблице, используя jQuery.

Сообщение Anonymous »

У меня есть веб-страница HTML, которая позволяет пользователю вводить несколько строк чисел. Мне нужно добавить проверку, чтобы убедиться, что введенное ИЛИ измененное число еще не существует в таблице.
В таблицу добавляется строка по кнопке щелкните, используя приведенный ниже 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»