2015-04-23 42 views
1

之前有没有无论如何要检查是否有类似的价值在输入框中存在类似值检查表单提交

EX:

<form> 
    USER 1 
    <input name="user1" value="bla1"> 
    <input name="pass1" value="ple1"> 
    <input name="email1" value="[email protected]"> 

    USER 2 
    <input name="user2" value="bla2"> 
    <input name="pass2" value="ple1"> 
    <input name="email2" value="[email protected]"> 

    USER 3 
    <input name="user3" value="bla1"> 
    <input name="pass3" value="pla3"> 
    <input name="email3" value="[email protected]"> 

    <button type="submit"> 
</form> 

验证表单提交时会触发,它会提醒用户并为具有相似值的输入添加一个类。所有输入字段都以空白开始,用户应该输入值。所有字段只能与其类型USER,PASS和EMAIL进行比较。

+0

您使用PHP或JavaScript ???,你可以使用如果一方......如果(第1项== ITEM2)语句,我不知道为什么你需要这份表格{然后警报东西} – Careen

+0

。目的是什么? – lv0gun9

+0

@YauheniLeichanok为(VAR计数器= 1;计数器<= $( '#反用户')VAL();计数器++){ \t \t \t \t X = 1个 \t \t \t \t \t而(X <= $ ( '#反用户')。VAL()){ \t \t \t \t \t \t \t \t \t \t \t \t如果(计数器!= X){ \t \t \t \t \t \t \t \t \t \t \t \t \t \t如果($( '输入[名称= “用户 '+计数器+”']')。VAL()= $( '输入[名称=“用户' + X + ' “] ')VAL()){ \t \t \t \t \t \t \t \t $(' 输入[名称=” 用户' +计数器+“ '] ')addClass(' 验证失败的')。 \t \t \t \t \t \t \t \t $( '输入[名称= “用户 '+ X +”']')。addClass( '验证失败的'); \t \t \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t \t \t \t \t} \t \t \t \t \t \t X ++; \t \t \t \t \t \t警报(X) \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t \t \t \t} – Link

回答

1

我已经为您制作了一个小型jsfiddle

基本上它只是遍历表单中的每个元素,找到任何具有相似名称的任何元素,并且如果它们具有相同的值,则会将它们标记为两者。这比A低一点,B低一点,但仍然效果不错。

$('form').submit(function(event) { 
    var ok = true, 
     $form = $(this), 
     $inputs = $(this).find('input') 
    $inputs.removeClass('error') 
    $inputs.each(function() { 
     var $src = $(this) 

     //Get the name of the element, and strip off the number 
     var name = $(this).attr('name').replace(/[0-9]/g,'') 

     //Filter the inputs down to only the ones whose name starts the same 
     $inputs.not(this).filter('[name^="' + name + '"]').each(function() { 
      if($src.val() == $(this).val()) { 
       ok = false 
       $(this).addClass('error') 
       $src.addClass('error') 
      } 
     }) 
    }) 
    if(!ok) event.preventDefault() 
})