我想使用jQuery检索输入的值。
这是HTML:
<input type="text" name="a" id="a" />
<input type="button" name="b" id="b" value="Click here"/>
这里是jQuery:
$(document).ready(function() {
var normal=$('#a').val();
$('#b').on("click", function() {
alert(normal);
});
});
由于某种原因,alert(normal);
不起作用,alert($('#a').val());
会起作用。为什么?我没有normal
和$('#a').val();
持有相同的价值吗?
如果你想要一个jsfiddle:http://jsfiddle.net/L2uX4/20/
由于
答案 0 :(得分:2)
如果在click函数处理程序之外声明var normal
,则初始值将为空,因为DOM准备就绪后文本框中没有值。但是如果您在click
事件处理程序中声明它,那么在文本框中键入内容并单击按钮后,将分配该值。
以下代码适合我
$(document).ready(function() {
$('#b').on("click", function() {
var normal= $('#a').val();
alert(normal);
// same as alert($('#a').val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="a" id="a" />
<input type="button" name="b" id="b" value="Click here"/>
答案 1 :(得分:1)
您在return ticket;
上分配normal
而不是在点击时重新分配,所以正常情况将是您在页面加载时为输入字段提供的任何值。
答案 2 :(得分:0)
试试此代码
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
答案 3 :(得分:0)
是的,你是对的,
如果
id= a
的文本框在加载时有一些文字。
我的意思是
<input type="text" name="a" id="a" value= "foo"/>
小提琴:http://jsfiddle.net/Jayas/vhjm8v31/2/
现在,如果点击Clickhere
按钮,则会显示foo
。
在你的情况下
a
的值分配给normal
时,文本框为空。你没有任何处理程序或事件被连接起来重置/设置变量normal
被输入的东西或输入的东西之后。我的意思是有价值的东西存储在input change
沿着
$(document).ready(function(){
$('#a').bind('input propertychange', function() {
normal = $('#a').val();
}
})
小提琴 http://jsfiddle.net/Jayas/vhjm8v31/4/
tl:dr - 将文本重新绑定到声明的变量不会“自动”发生
所以现在当你在重新分配normal
后点击按钮时,你会看到输入的值。
或者您也可以按照
的方式捕获正常点击事件的值 $('#b').on("click", function() {
var normal = $('#a').val();
alert(normal);
});