我有一个标准的html下拉框。
我希望在用户选择没有单独提交按钮的项目后运行js代码。
当用户在选择框中选择第一项(实际上是先前选择的项目)时,不会触发Onchange事件。
即使单击之前选择的项目,如何使组合框对点击作出反应?
注意: 1.我不想添加“从这里选择”或类似于选择框的内容。 2. onclick事件没有帮助,因为它也会在第一次点击时触发用户在实际选择之前打开选项。
答案 0 :(得分:1)
我认为这不可能做到。正如您所指出的那样,onchange
不起作用。 onmouseup
太早发射。
我认为onblur
会执行此操作,但当用户选中可用元素时,它也会触发。
如果您确实需要这种方法可靠地工作,请考虑使用基于JavaScript的替换小部件,如this one。它们使您能够解决标准表单元素不幸存在的臭名昭着的缺乏灵活性。
哦,顺便说一下,<select>
元素is not a combo box,它是下拉列表。
:)
答案 1 :(得分:1)
您可以使用onclick事件,但同时计算点击次数。
<script type="text/javascript">
var count = 0;
function selectClicked(sel){
count++;
if (count == 2){
//the user has selected something
//so go ahead and handle it
count = 0;
}
}
</script>
答案 2 :(得分:1)
如果您将“onclick”事件添加到单个“选项”元素而不是“select”元素,该怎么办?