JQuery使用默认选择= y时从选择列表中获取用户选择的值
Posted
技术标签:
【中文标题】JQuery使用默认选择= y时从选择列表中获取用户选择的值【英文标题】:JQuery Get user selected value from select list when using default select=y 【发布时间】:2011-05-21 17:28:34 【问题描述】:您好,我有一个选择列表:
<select id=cardtype name=cardtype>
<option selected='y' value="debit-0.00-50.00">Debit1</option>
<option value="debit-0.00-50.00">Debit2</option>
<option value="debit-0.00-50.00">Debit3</option>
<option value="Credit-1.00-50.00">CreditCard</option>
</select>
我一直在 JQuery 中尝试各种方法来获取用户选择值的值: var card = $('#cardType').val(); var card = $('#cardType :selected').val(); 等等等等
但是它们都只是返回默认选择选项的值:
<option selected='y' value="debit-0.00-50.00">Debit1</option>
有谁知道获取用户选择的选定选项值而不是默认选定值的方法?
编辑 澄清当用户点击这样的链接时运行 JQuery:
<label for="paymentAmount">Amount (minimum payment <a class="minPay" href="">£<span id="dueFrom">50.00</span></a>) <span class="instructions"><span class="mandatory">*</span></span></label>
使用以下 jquery:
$("a.minPay").click(function(event)
event.preventDefault();
$("#paymentAmount").val($("#dueFrom").html());
var from = parseFloat($("#paymentAmount").val());
var card = $('#cardType').val();
);
当用户在选择列表中选择一个选项时,这不会运行。我想要值选项而不是文本:)
【问题讨论】:
【参考方案1】:确保您使用正确的id
和在正确的时间获得它,这是正确的方法:
$('#cardtype').val();
注意id
是cardtype
,而不是cardType
,它区分大小写。此外,您需要确保在用户选择了一个值之后 之后运行,例如:
$('#cardtype').change(function()
alert($(this).val());
);
You can test it out here。另请注意,您的属性应始终被引用。
【讨论】:
您好,感谢您的快速回答! :) 但是,id 是正确的(我忘了在帖子中加上“t”)这个函数在用户点击链接时运行,而不是在选择列表更改时运行。 嗨尼克,在使用那个 yool 之后(非常好:))我发现我的代码在那里工作正常.. 但是在我的应用程序中它没有,我想知道它是否因为选择列表是通过 AJAX 动态生成的,虽然我不明白为什么会有所作为..【参考方案2】:您需要确保您的 ID 相同(您的代码和 HTML 有不同的大小写);
$('#cardtype').val();
将获得如下所示的选定值:http://jsfiddle.net/jonathon/8hvRa/
还有一点是,您所有的借记卡价值都是相同的。 val
获取选项的值,而不是文本。
【讨论】:
嗨 Jonathon,我关注的是选项的值而不是文本,上面的 html 只是一个示例,在实际应用中,每个选项都有不同的文本和不同的值以上是关于JQuery使用默认选择= y时从选择列表中获取用户选择的值的主要内容,如果未能解决你的问题,请参考以下文章
jquery datatable如何在导出到excel pdf时从标题中删除下拉过滤器选择值