2014-10-02 7 views
0

В основном у меня есть таблица элементов, как это:JQuery добавить класс недействительных текстовое поле

<table id="items"> 
<th>Description</th><th>Qty. In Stock</th><th>Qty. To Issue</th> 

<tr><td>description of item</td><td>1</td><td><input type="text" class="qtyissued"></td></tr> 


<tr><td>item</td><td>3</td><td><input type="text" class="qtyissued"></td></tr> 
</table> 

Стол в виде модального JQuery. Пользователь вводит сумму в текстовое поле элементов для выпуска из текущего количества на складе. У меня есть проверка, которая останавливает их при вводе 0 или больше доступного количества.

Что я хочу сделать, это добавить класс в текстовое поле, если он содержит недопустимое число, например. 0. Я пытался делать

$('.qtyissued').closest('.qtyissued').addClass('ui-state-error'); 
$('#items').closest('tr').find('td:eq(0)').addClass("ui-state-error"); 
$('.qtyissued').closest('input:text').addClass('ui-state-error'); 

Но ни один из них не работает, я знаю, что могу использовать $('.qtyissued).addClass('ui-state-error'); но это будет добавить класс на все поля ввода, даже годные.

Я вызываю функцию по нажатию кнопки из модальной формы, которая затем вызывает:

var qty = $(this).closest('tr').find('td:eq(2)').text(); 
if(qtyissued == "" || qtyissued== 0 || qtyissued> qty) { 

$(".qtyissued").each(function(){ 
    if($(this).val()=='0'){ 
     $(this).addClass("ui-state-error") 
    } 
}) 
     updateError("Please enter a valid quantity"); //Function to add error message 
} 

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

+1

вы можете сделать jsfiddle пожалуйста –

+0

'$ ближе ('qtyissued. '). (' Ввода: текст')' означает ближайший родительский элемент и входы не могут иметь детей – Pete

+0

I думаю, у вас есть ссылка на ввод, который вы проверяете для .. Итак, при проверке вы можете просто использовать $ (). addClass ('ui-state-error'); –

ответ

1

я хотел бы сделать:

$(".qtyissued").each(function(){ 
    if($(this).val()=='0'){ 
     $(this).addClass("ui-state-error") 
    } 
}) 
+0

это выберет каждый класс .qtyissued и проверит их, просто подумайте, что, если вы хотите разрешить 0 в некотором текстовом поле –

+0

, он дает возможность обрабатывать каждый .qtyessued, который вы можете добавить больше классов или атрибутов для ввода и обработки его так же, как вы хотите –

+0

Я пробовал это, но он не работает, так как «this» относится к странице, прежде чем я нажал на модальную форму. Я знаю это, когда я использую 'var desc = $ (this) .closest ('tr'). Find ('td: eq (1)'). Text();' который возвращает значение со страницы, а не форму – Harry12345

Смежные вопросы