【问题标题】:Jquery function .change()jQuery 函数 .change()
【发布时间】:2012-11-27 17:50:12
【问题描述】:

我需要一些帮助。

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

组合选项不能放负值吗?

感谢您的帮助。

【问题讨论】:

  • 如果您选择了一个已经选择的选项,则不会调用更改事件,我的意思是如果已经选择了 value='-1' 的选项并且您选择了它,那么更改事件将不会触发。跨度>
  • 我不确定你的意思,这是有效的:jsfiddle.net/GRwct
  • Thk lan,我用 .prepend 修复

标签: javascript jquery


【解决方案1】:

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

【讨论】:

  • 编辑帖子,以这种方式填充组合,我知道如果它是第一个选项,默认值为 -1。我错了吗?
【解决方案2】:

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

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');
});

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-23
      • 2011-05-13
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      相关资源
      最近更新 更多