美好的一天,

我有一个drop down list,其中有一个onchange函数调用updateView()jsp代码如下:

<s:select name="accountDateRange" onchange="updateView();" id="function" >


但是,不仅有使用此功能的drop down list。其他功能可能会调用updateView()继续。

当用户在此onchange上执行drop down list时,我需要运行一些代码,但是我不希望在其他函数调用updateView()时运行此代码。

以下是updateView()的代码的一部分:

function updateView() {

    // some other code here

        // here is the code that I only want to run during onchange
        $("#fromDate").val("");

    // some other code here

}


我尝试在下拉菜单中放入onclick函数,在此onclick函数中,我将变量设置为true。

这样我就可以在运行$("#fromDate").val("");之前使用此变量进行检查,例如:

if (onchangeOnly = true){
  $("#fromDate").val("");
}


但是,我发现onchange将首先与onclick比较运行。

有什么办法或想法吗?好心提醒。

编辑:

function updateView() {

    // some other code here
    if ($("#function").val() == "TODAY") {
        // some other code here..
    }
    else if ($("#function").val() == "DATERANGE") {
        // here is the code that I only want to run during onchange
        $('[name="accountDateRange"]').on('change',function(){
                    alert('this is specific to this dropdown only');
                });
     }
    // some other code here

}


我发现,即使我的$("#function").val()不等于“ DATERANGE”,它也会打印出alert('this is specific to this dropdown only')。请指出我的错误。

最佳答案

您可以为同一个事件添加多个处理程序,这意味着您可以离开现有函数并编写一个新函数,然后将该函数添加到下拉列表中,以便触发updateView()的其他机制不受影响。

$('[name="accountDateRange"]').on('change',function(){
alert('this is specific to this dropdown only');
})

关于javascript - JavaScript或Jquery中的onchange(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24822833/

10-09 23:21