使用jQuery确定是否选择了ASP.NET列表框项

z9ju0rcb  于 2022-11-03  发布在  jQuery
关注(0)|答案(3)|浏览(152)

我有以下函数,单击该函数将遍历我的ASP.NET ListBox中的 * 所有 * 项:

$('#<%=MyListBox.ClientID %>').children("option").each(function () {

}

我不想改变上面的这个函数,因为对于外部函数,我需要遍历 all 项来处理一些逻辑。但是在内部,我需要查看焦点中的项是否被选中,并且不能得到正确的结果。我已经搜索了大量的帖子,可以使函数只返回选中的项,但是我想检查一下这个函数中的当前项是否被选中。
我试探着:

if ($(this).selected())

......然后抛出错误,声明为object not supported。我还尝试:

if ($(this).selected == true)

......它说selected是未定义的,但当我看$(this)时,selected的值是false
如何在函数中检查循环中的当前项是否为selected

rslzwgfq

rslzwgfq1#

if(this.selected) /* ... */

应该足够了,如果没有,那么this并不指你所认为的它的作用。
如果option没有selected属性,那么你将得到undefined--因为这个属性不存在。因为undefined错误的
请注意,您将收到与所描述的两种情况相应的错误消息。

if ($(this).selected()) /* there is no method `selected` for this
                           jQuery object */

if($(this).selected == true) /* selected will be undefined for option's that
                                don't have a selected attribute */

http://jsfiddle.net/R6KA8/

5tmbdcev

5tmbdcev2#

我在如何确定是否选择了option值中解决了这个问题。我使用了prop()method from jQuery,如下所示:

$('#<%=MyListBox.ClientID %>').children("option").each(function () {
    if ($(this).prop('selected'))
    {
       //Do work here for only elements that are selected
    }
}
fgw7neuy

fgw7neuy3#

试试看:ddlListItems是列表框的ID

$('#ddlListItems option:selected').text() != '' ? alert("Item is selected") : alert("No Item selected");

相关问题