2010-05-07 32 views
0

我有幾個選擇框和文本框與相同的類,我有以下聲明。 修訂JQuery。檢查相同類的選擇框和文本框的值,有可能嗎?

//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:可見')VAL()),它作爲不確定的。

我想檢查這些元素的值是否爲空,但是我不能看到這個if語句有什麼問題,請問您能幫我一下嗎?

非常感謝。

+0

您還需要發佈標記:) – 2010-05-07 11:48:39

+0

@ Nick Craver:給我一秒鐘。 – Amra 2010-05-07 11:55:09

回答

2

我想這是一個更大的循環的一部分,目前雖然你正在檢查所有元素與班,不是那些只是在該行,調整它給$() 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"當前行,我相信這是WH在你之後...如果不是忽略這個沒用的答案:)另外,不直接相關這個問題,但不要在無效的HTML同一ID多次,你有什麼用,並可能導致許多其他副作用。

+0

我們都忘了「回報假」;當元素被找到時。在搜索到的元素被找到時制動「每個」循環。 – 2010-05-07 12:24:03

+0

@Maksim - 我同意這通常是你想要的,但我不知道在這裏的大循環中發生了什麼,爲塞薩爾輸入時間:) – 2010-05-07 12:27:31

+0

我同意,在這種情況下,它不是一個大問題,但是這只是一個很好的做法。這並不困難,它是唯一的代碼行。 – 2010-05-07 12:34:15

4

試試這個

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

無需一個'的.html()'檢查輸入元素,刪除,它是+1的正確性,從我:) – 2010-05-07 11:49:01

+0

謝謝您非常快速重播,我要試試你的解決方案,但如果我想知道是避免.each()的一種方式,因爲它已經在另一個.each()中。謝謝。 – Amra 2010-05-07 11:49:17

+0

@尼克Craver,謝謝你是對的。 – 2010-05-07 12:00:04

相關問題