我有一张表格
<form method="get" id="searchform" >
<input value="Search..." id="s" type="text">
</form>
和jquery代码
<script language="javascript">
var searchformValue;
$('#searchform').submit(function(){
searchformValue = $('#s').val();
return searchformValue;
});
</script>
但是当我在功能
之外提醒搜索表单值时<script language="javascript">
var searchformValue;
$('#searchform').submit(function(){
searchformValue = $('#s').val();
return searchformValue;
});
alert(searchformValue);
</script>
它返回unidentified.Why ??
任何解决方案吗?
编辑:我希望在函数运行后将searchformValue设置为提交值
答案 0 :(得分:4)
当你 -
alert(searchformValue);
不会调用提交函数(因为在提交页面上的表单之前不会调用它),因此searchformValue
的值仍然是未定义的。
答案 1 :(得分:1)
您在代码运行之前调用alert()。您需要在处理程序的末尾或之后调用它,以便实际显示一个值。
这里不需要全局变量,只需删除'var'即可。仅供参考,全球变量是邪恶的。
答案 2 :(得分:0)
在处理事件时,您必须意识到事件的回调必须发生才能发挥作用。
因此,您拥有的代码将初始化searchformValue
,将回调附加到表单的submit
事件,然后alert(searchformValue)
,同时变量为undefined
。< / p>
答案 3 :(得分:0)
变化
var searchformValue;
到
var searchformValue = ""
答案 4 :(得分:0)
你做得对,但是在调用提交处理程序之前,变量没有给出值。我怀疑这就是你想要的。
答案 5 :(得分:0)
这将按预期运行:
var searchformValue;
$('#searchform').submit(function(){
searchformValue = $('#s').val();
alert(searchformValue);
return searchformValue;
});
alert("This will alert immediately");
.submit()
没有阻止。在转到下一个语句之前,它不会等待表单提交。提交后你想要发生的任何事情都需要进入回调函数。