[英]Option selected != .val from jquery
我想知道这怎么可能,我错过了什么吗? 我有一个选择元素,默认情况下选中的选项是顶部的空元素,请参见下面的屏幕截图。
但是当我检查该元素以查看选择的选项是什么时,它将显示13作为值。
对于问题和我在做什么的一些背景知识; 在第一页上,我正在基于一个包含图像中显示的组的下拉列表中选择一个值。 然后,我导航到另一个页面,并将所选值作为参数值传递到url中。 下一页具有设置页面的页面加载,并且在预渲染事件中,我将选择控件的值设置为""
,与url参数中传递的值相反。 因此,我期望select元素成为最重要的元素,并检查dom是否正确。 但是当使用jquery时,它将返回我从上一页传递的值。 我认为这是一个jquery问题,所以我使用了原始Java脚本,它向我返回了上一页中的选定值(请参见下面的屏幕快照)。
我尝试过的另一件事是在代码中, drpCtrl.SelectedValue = valStr
,在OnPreRenderComplete被触发时,我将valStr
设置为""
,我将其设置为硬编码值,并迫使下拉菜单按预期选择正确的值,来自上一页的上一个。
这使我想到必须在document.ready
某个位置将值设置为""
。 所以我开始寻找,截至目前还没有发现任何东西。 但是我一直在想,这怎么可能? 我知道可以更改选定的值,而无需更改具有选定属性的选项。 这就是$(...).val()
和$(... option:selected).val()
可以返回不同值的原因。 我的经验一直是$(... option:selected).val()
返回具有selected属性的选项。
有人知道这里发生了什么吗? 是否将值设置为""
?
:selected
将获得它具有的元件selected
支柱设置为TRUE, [selected]
将获得它具有的元件selected
属性 。
$(function() { $('select').val('12'); console.log($('option:selected').val()); console.log($('option[selected]').val()); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select> <option selected/> <option value="12">12</option> </select>
jQuery .val()函数对选择列表进行操作,而不对option元素进行操作,因此,如果您使用以下代码,则代码应该可以工作:
$("#ct100_ct100_contentBody_LendingGroup").val()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.