代码之家  ›  专栏  ›  技术社区  ›  Amra

jquery。选择框和具有相同类的文本框的值,是否可能?

  •  0
  • Amra  · 技术社区  · 16 年前

    我有几个具有相同类的选择框和文本框,我有以下语句。 更新

    //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 回复  |  直到 16 年前
        1
  •  2
  •   Nick Craver    16 年前

    我想这是一个更大的循环的一部分,尽管你正在检查 全部的 具有这些类的元素,而不是该行中的元素,调整它,使 $() 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" 对于 当前行 我相信这就是你所追求的……如果不忽略这个无用的答案的话:)同样,不是 直接地 与问题有关,但不要多次使用相同的ID,您在无效的HTML中所拥有的内容可能会导致许多其他副作用。

        2
  •  4
  •   Maksim Burnin    16 年前

    试试这个

    $('.selTxtClass:visible').each( function(i,e){
        if(e.val()==''){
            e.focus();
            return false;
        }
    });