【问题标题】: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 相同。
【问题讨论】:
标签:
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());
});
});