Проверка JQuery с использованием класса

0

Привет, я пытаюсь выполнить некоторую проверку для динамического текстового поля на основе класса. если оба текстовых значения одинаковы, моя форма не должна быть отправлена. Я уже написал одно условие. но оно всегда показывает одно и то же значение; это мой код

$('.option_text').each(function(){

        if($(this).val() ==''){
            alert('Option Cannot Empty');
            $('.add_option_table').show();
            $('.add_questions').hide();
            $(this).focus(); 
            submitAllow=false;
            return false;

        }else if($(this).val()==$(this).val()){
            alert('Option Value Shoud not Same');
            $('.add_option_table').show();
            $('.add_questions').hide();
            $(this).focus(); 
            submitAllow=false;
            return false;
        }

}); 
  • 0
    поделитесь полным кодом
  • 3
    $(this).val()==$(this).val() всегда будет верным
Показать ещё 3 комментария
Теги:

5 ответов

0

Используйте nth-child для ориентации на разные элементы одного и того же класса.

$('.option_text:nth-child(1)') == $('.option_text:nth-child(2)');

Как и другие, указанные $(this).val()==$(this).val() всегда будут true.

0

Здесь он всегда будет показывать то же значение, что и сравнение с самим собой. $ (this) будет ссылаться на текущий элемент.

0

Код:

if($(this).val()==$(this).val())

Всегда будет правдой. Вместо этого попробуйте проверить значения своих братьев и сестер. Измените свой код таким образом:

if($(this).val()==$(this).siblings().val())
0

Я думаю, что $(this).val()==$(this).val() даст вам всегда одно и то же значение, поэтому оно всегда будет истинным. Храните предыдущее значение в другом контейнере.

0

Создайте скрытый элемент (пусть скажем id = "HiddenVal"), где вы можете сохранить все введенные значения текстового поля до сих пор. Это можно сделать, вызвав следующую функцию

function getPrevValues(){
var AllValues=[];
$('.option_text').each(function(){
AllValues.push($(this).val());
});
$('#HiddenVal').val(AllValues);
}

Теперь, когда вы вводите новое значение, вызовите функцию, например checkAvailability (this)

function checkAvailability(id){
var AllValues=$('#HiddenVal').val().split(',');
if($.inArray($(id).val(),AllValues)>-1)
alert('You can add')
else
alert('you cant add');
}
  • 0
    Если я использую условие выше, это займет только первое и последнее .. но мои поля являются динамическими
  • 0
    Я изменил код попробуй сейчас

Ещё вопросы

Сообщество Overcoder
Наверх
Меню