Как проверить повторение в нескольких группах ввода? - PullRequest
1 голос
/ 28 февраля 2012

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

Пример:

<div class="group1">
    <input name="group1a" id="group1a"/>
    <input name="group1b" id="group1b"/>
    <input name="group1c" id="group1c"/>
    <input name="group1d" id="group1d"/>
<div>
<div class="group2">
    <input name="group2a" id="group2a"/>
    <input name="group2b" id="group2b"/>
    <input name="group2c" id="group2c"/>
    <input name="group2d" id="group2d"/>
<div>

Все эти входы имеют некоторые значения (введенные пользователем), поэтому я хочу проверить, вводит ли пользователь значение , такое же , в любой вход group1 (аналогично group2 , group3 , ...), затем система предупредит пользователя: «Вы не можете ввести одно и то же значение в этой группе»

Какой самый эффективный способ сделать это с помощью jQuery?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Вы можете сделать:

$('input').blur(function(){
   var curr = this.value;
   if(curr != '' && $(this).siblings('input[value='+curr+']').length > 0){
      alert('you can\'t enter the same value twice in the same group');
      this.value = '';
   }
});

скрипка здесь http://jsfiddle.net/QRyWQ/

1 голос
/ 28 февраля 2012
$(".group1, .group 2").each(function() {
    var lastValues = {};
    $(this).find("input").each(function() {
       var thisVal = $(this).val();
       if($.inArray(thisVal , lastValues) > -1) {
           alert('You cannot enter any same value in that group');
           break;
       }
       lastValues.push(thisVal);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...