Jquery function .change()



我需要一些帮助。

我的jsp中有这段代码,用于捕获与Jquery更改的事件。

jQ("#idExp").change(function() { 
        onchangeExp();
    });
function onchangeExp(){
    alert("onchangeExp");
    if(jQ("#idExp").val()!="-1"){
        recuperarDatosAF();
    }else{
        jQ("#comboAF").attr('disabled',true);
        jQ("#comboAF").val("-1");
    }
}

我用这个填充组合:

 jQ("#idExp").html("");
 jQ("#idExp").append("<option value='-1'>"+""+"</option>");
 jQ.each(expedientes, function(i,value){
     jQ("#idExp").append("<option value='"+i+"'>"+value.codExpediente+" </option>"); 
 });

i 的值为 [0,1,2..]

问题是,当我从值为"-1"的组合中选择空白选项时,不要启动 onchange 函数运行,而是当我从组合中选择任何其他选项时,onchange 函数正在运行。

你不能把组合选项的负值放吗?

感谢您的帮助。

选择框的默认值是第一个选项的值,因此选择框的值不会更改,也不会触发更改事件。

尝试像这样添加一个真正的整数作为值

jQ(function() {
    var j = jQ('#idExp');
    j.append(jQ('<option/>').attr('value', -1));
    j.change(function() {
        if(j.val() == -1) {
            jQ("#comboAF")
                .attr('disabled',true)
                .val("-1");
        }
        else {
            recuperarDatosAF();
        } 
    }).trigger('change');
});

您可以在追加选项时触发更改事件:

jQ("#idExp").append("<option value='-1'>"+""+"</option>").change();

最新更新