0

我需要一些帮助。

我的jsp中有这段代码,用于使用Jquery捕获事件onchange。

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 函数运行。

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

谢谢您的帮助。

4

3 回答 3

1

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

于 2012-11-27T09:27:01.983 回答
0

尝试添加一个实整数作为这样的值

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');
});
于 2012-11-27T09:31:47.697 回答
0

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

jQ("#idExp").append("<option value='-1'>"+""+"</option>").change();
于 2012-11-27T09:40:30.450 回答