2011-02-04 40 views
0

我遇到了一個奇怪的問題。我有一個包含一些值的下拉列表。使用jQuery代碼我想設置一個選項作爲選擇的一個:設置下拉列表值時出現JQuery問題

$('.myform #company').val('10K'); 

公司元素是下拉列表中選擇,並在其中的一個選項有10K的價值。如果我在相同的下拉列表中嘗試使用相同的代碼來獲取不同的值,它就可以正常工作。

我有點茫然。我也很難認爲實際字符串值10K是什麼原因造成的?

感謝

<option value="">Select</option> 
<option value="10K ">10k Filing</option> 
<option value="501C">501c3 Filings</option> 
<option value="F990">Form 990</option> 
+1

嗯大膽猜測:低/大寫? 10k ...或者向我們展示html選擇 – 2011-02-04 20:48:51

回答

0

驚訝,沒有人指出這一點,但期權的價值有一個額外的空間:

<option value="10K ">10k Filing</option> 
0

你可以列出<option>值這個下拉?

順便說一下您的選擇僅需要$('#company')

0
if($('#company').length){ 
     for (i = 0; i < document.getElementById('#company').options.length; i++) { 
      if (document.getElementById('#company').options[i].value).toLowerCase() == '10k' { 
         document.getElementById('#company').selectedIndex = i; 
         break; 
      } 
     } 
    } 

我覺得它更容易在這種情況下使用純javascript ......有jQuery插件,與選擇框的操作有所幫助,但即使是我作爲一個大jQuery的粉絲認爲這樣做是非常不明智的,因爲你可以更高效地使用純javascript來完成這些任務,而無需加載額外的庫。

0

好的JavaScript可以執行xml轉換,所以你可以寫一個爲你做這個。我對我的XSLT有點生疏,但它會是這個樣子:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<Select> 
<xsl:template match="/"> 
<xsl:for-each select="option"> 
<option value="<xsl:value-of select="catalog/cd/title"/>"><xsl:value-of select="catalog/cd/title"/> Filling</option> 
</xsl:for-each> 
</xsl:template> 
</Select> 

</xsl:stylesheet> 

因此,這是你需要什麼,你可能需要在其上多一點的工作,但你的想法