繁体   English   中英

从jQuery选择选项!= .val

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM