0

我对 IE9 中的动态下拉列表有疑问。

我有一个表格,其中一列用组合填充,每行一个组合,每个组合都是用 HTML 5.0 代码创建的,如下所示:

<select id="cboABC0" class="RetrieveList cboABC" data-index="0" data-info="3" name="cboABC">
<option selected="selected" value="N">Select</option>
<option value="P">Partial</option>
<option value="C">Complete</option>
<option value="CA">Cancelled</option>
</select>
</td>

我希望在下拉列表中选择一个选项时发生一些事情,具体取决于所选选项,为此,我尝试了使用 JQuery 使用 RetrieveList 类的事件的不同方法:

$(".RetrieveList").live(''click'',function(event){      

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index");

var sOptionSelected = $(this).val();

alert(sOptionSelected);

// Here is where I want to do something , depending on the selected option.

}); 

使用“实时点击”,至少点击事件会被“触发”,但它无法识别我选择的内容,它会保留我选择的最后一个选项,例如,如果没有选择任何内容并且我打开组合,移动到另一个选项并单击该选项,它会转到单击事件,但 $(this).val() 返回的值是前一个而不是刚刚选择的那个。另一方面,如果我使用箭头键选择选项然后单击,id 确实会识别新值。就像它只识别“点击”的变化而不识别价值。

我尝试过使用“绑定点击”、“实时更改”和“绑定更改”,并且使用这些选项,点击甚至不会被“触发”。

同样,这一切都发生在 IE9 和 Mozilla 上,我没有遇到任何重大问题。

如果有人可以帮助我解决这个问题,我将不胜感激。

提前致谢,

问候!

布伦达

4

2 回答 2

2

首先,你有''click''什么时候应该是公正'click'的。无论如何我都不会使用click,而是使用change所以它会在列表更改时触发,而不仅仅是在用户单击它时触发。click即使您只是单击它而不进行其他选择也会触发(单击以查看所有下拉项)

解决这个问题,它适用于我的所有浏览器。

演示

于 2012-06-16T20:58:36.757 回答
0

尝试:

    $(".RetrieveList").live('change',function(event){      

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index");

var sOptionSelected = $(this).val();

alert(sOptionSelected);

// Here is where I want to do something , depending on the selected option.

}); 
于 2012-06-16T21:00:57.640 回答