SELECT onChange event

SELECT onChange event

本文关键字:event onChange SELECT      更新时间:2023-09-26

在用户使用鼠标或按Enter键选择项目之前,我如何跟踪SELECT元素中的更改?

可以收听keyUp事件,该事件允许跟踪用户使用键盘在列表中导航。但是否有更通用的方法,允许跟踪列表的"预先"更改?

为此,我总是使用focus click侦听器。

$('select').bind('focus click',function(){
//IMACHANGINGMYOPTION!!!!!!!!!!
    //var val=$(this).val();
});

以上应在变更事件发生前触发:

$('select').change(function(){
//The option has been changed.
});

说明:每当用户关注select时,我们都会获得所选项目的值,如果触发onchange事件,我们可以在事件之前对其进行操作。添加click侦听器以防我们的选择已经集中,并且用户在实际选择选项并触发更改之前点击进行扩展。

这是一个使用示例,可以让我们跟踪以前的值:

http://jsfiddle.net/SUKqS/8/

Javascript支持"onbeforechange"事件,这可能会起到作用,但我不知道它在浏览器中的实现范围有多广?如果这一点得到了足够广泛的支持,请在更改之前存储以前的值。否则,只需将原始值存储在隐藏字段或JS变量中。

将鼠标移动到所选项目上时,不会触发任何事件。

正如您所说,您可以跟踪鼠标的移动。但由于不同的浏览器呈现列表的方式不同,这将是一项艰巨的任务。

但是,您可以自己创建一个选择框,而无需使用本机选择

您必须创建一个类似以下示例的函数:-

function example(){
jQuery('select#service_billing_state').change(function () {
//your code here
});
}

你必须在onchange、onblr、onkey、onfocus中调用这个函数。。。