2011-02-04 70 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> 

因此,这是你需要什么,你可能需要在其上多一点的工作,但你的想法