【问题标题】:jQuery only gets the default value of inputjQuery 只获取输入的默认值
【发布时间】:2011-07-28 17:19:38
【问题描述】:

我有两个点击事件和两个按钮。隐藏一个按钮,隐藏一个输入。

当我单击未隐藏的按钮时,会出现隐藏按钮和隐藏输入。当我单击第二个按钮时,即隐藏的那个,我得到了输入的默认值。这就是问题所在,它正在获取默认值,默认情况下,我的意思是我在代码中的value='dasad' 中输入的任何内容。它没有得到用户输入的值。

一些示例代码,不要只看语法


    $(button1).click(funciton(){
     $(button2).show();
    $(input2).show();
    })
    $(button2).click(function(){
    $(input2).val();
    })

我尝试使用delegate,但结果与click 相同。

【问题讨论】:

  • 您必须组合一个最小的、独立的示例并将代码发布到问题中(也可以选择jsbin.comjsfiddle.net,但是始终在问题中包含代码)。

标签: jquery button input click show


【解决方案1】:

我尝试了以下方法并能够让它工作

$(document).ready(function() {
$('#button1').click(function(){
    $('#button2').show();
    $('#input2').show();
});
$('#button2').click(function(){
    alert($('#input2').val());
})
});

按钮设置如下

<button id="button1">hello</button>
<button id="button2" style="display:none">hello 2</button>
<input id="input2" style="display:none" type="text" />

【讨论】:

    【解决方案2】:
    $('#button1').click(function(){
        $('#button2').show();
        $('#input2').show();
        return false;
    });
    
    $('#button2').click(function(){
        var value = $('#input2').val();
        alert(value);
        return false;
    });
    

    【讨论】:

      【解决方案3】:

      在这种情况下,您确实没有理由必须使用委托,但据我所知,这确实不是一个坏主意。

      这是一个示例 JSfiddle 做我认为你想要的,从你的问题中很难看出。

      $(document).ready(function() {
          $(".wrapper").delegate(".button1", "click", function() {
              $(".innerDiv").show();
              $(".input1").focus();
          });
      
          $(".wrapper").delegate(".button2", "click", function() {
              $(".showVal").html($(".input1").val());
          });
      
      });
      

      【讨论】:

        猜你喜欢
        • 2011-06-03
        • 2014-06-03
        • 2017-11-04
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 2019-08-28
        • 2013-01-03
        • 1970-01-01
        相关资源
        最近更新 更多