JQuery. Проверьте значение поля выбора и текстового поля с тем же классом, это возможно? - PullRequest
0 голосов
/ 07 мая 2010

У меня есть несколько полей выбора и текстовых полей с одним и тем же классом, и у меня есть следующее утверждение. ОБНОВЛЕНО

//This goes through each visible tr of the table with class notEmptyTable
$('.notEmptyTable tr:visible').each(function(index) {

    //This checks that the elements with class checkTextBox1IsNotEmpty its not Empty.
    if ($('.checkTextBox1IsNotEmpty ').val() != "") {
        if ($('.selTxtClass:visible').val() == "") {
            $('.selTxtClass:visible').focus();
        }
    }    
});

ОБНОВЛЕНО HTML

<table>
    <tr>
      <td><input type="text" id="txtBoxa1" class="checkTextBox1IsNotEmpty"/></td>
      <td><input type="text" id="txtBoxb1" /></td>
      <td><select id="selc1" class="selTxtClass" onchange="javascript:if (this.value = "other")txtBoxd1.style.display = 'block'"/>
          <input id="txtBoxd1" style="display:none;" class="selTxtClass"/>
      </td>
    </tr>

    <tr>
      <td><input type="text" id="txtBoxa1" class="checkTextBox1IsNotEmpty"/></td>
      <td><input type="text" id="txtBoxb1" /></td>
      <td><select id="selc1" class="selTxtClass" onchange="javascript:if (this.value = "other")txtBoxd1.style.display = 'block'"/>
        <input id="txtBoxd1" style="display:none;" class="selTxtClass"/>
      </td>
    </tr>

    <tr>
      <td><input type="text" id="txtBoxa1" class="checkTextBox1IsNotEmpty"/></td>
      <td><input type="text" id="txtBoxb1" /></td>
      <td><select id="selc1" class="selTxtClass" onchange="javascript:if (this.value = "other")txtBoxd1.style.display = 'block'"/>
        <input id="txtBoxd1" style="display:none;" class="selTxtClass"/>
      </td>
    </tr>

 </table>

Если я сделаю предупреждение с ($ ('. SelTxtClass: visible').val ()) он не определен.

Я хочу проверить, что значения этих элементов пусты, но я не вижу, что не так с этим оператором if, не могли бы вы помочь мне, пожалуйста?

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 07 мая 2010

попробуйте

$('.selTxtClass:visible').each( function(i,e){
    if(e.val()==''){
        e.focus();
        return false;
    }
});
2 голосов
/ 07 мая 2010

Я предполагаю, что это является частью большего цикла, в настоящее время, хотя вы проверяете все элементы с этими классами, а не только в этом ряду, отрегулируйте его, получив $() consutrctor контекст, строка в этом случае, как это:

$('.notEmptyTable tr:visible').each(function(index) {
    //Other loop stuff
    if ($('.checkTextBox1IsNotEmpty', this).val() != "") {
        if ($('.selTxtClass:visible', this).val() == "") {
            $('.selTxtClass:visible', this).focus();
        }
    }    
});

Это проверяет class="checkTextBox1IsNotEmpty" для текущей строки , что, как я считаю, и есть то, что вы ищете ... если не просто игнорировать этот бесполезный ответ :) Кроме того, не напрямую относится к вопросу, но не используйте один и тот же идентификатор несколько раз, что у вас в недействительном HTML и может привести ко многим другим побочным эффектам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...