设置下拉列表值时出现JQuery问题

时间:2011-02-04 20:35:29

标签: jquery jquery-selectors

我遇到了一个奇怪的问题。我有一个包含一些值的下拉列表。使用JQuery代码我试图将一个选项设置为选定的选项:

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

company元素是下拉列表选择,其中一个选项的值为10K。如果我在同一个下拉列表中为不同的值尝试相同的代码,它就可以正常工作。

我有点不知所措。我很难想到实际的字符串值10K是导致它的原因......

由于

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

4 个答案:

答案 0 :(得分:0)

您可以列出此下拉菜单的<option>值吗?

您的选择器只需要$('#company')

答案 1 :(得分: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更高效,无需加载额外的库。

答案 2 :(得分: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>

所以这就是你需要的东西,你可能需要更多地研究它,但你明白了

答案 3 :(得分:0)

很惊讶没有人指出这一点,但该选项的价值有一个额外的空间:

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