使用类进行Jquery验证

时间:2013-12-18 10:30:19

标签: jquery

嗨,我尝试对动态文本框进行一些验证。基于类。 如果两个文本值都相同,我的表单不应该提交。我已经写了一个条件。但它总是显示相同的值; 这是我的代码

$('.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;
        }

}); 

5 个答案:

答案 0 :(得分:0)

我认为$(this).val()==$(this).val()会给你总是相同的价值,因此它永远都是真的。将之前的值存储在另一个容器中。

答案 1 :(得分:0)

这里它将始终显示与您自己比较相同元素的相同值。 $(this)将引用当前元素。

答案 2 :(得分:0)

代码:

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

永远都是真的。而是尝试检查他们的兄弟姐妹的价值观。以这种方式更改您的代码:

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

答案 3 :(得分: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');
}

答案 4 :(得分:0)

使用nth-child定位同一类的不同元素。

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

与其他人一样,$(this).val()==$(this).val()永远都是真的。