如何在jquery中将值设置为全局变量?

时间:2011-10-26 12:24:29

标签: jquery

我有一张表格

  <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设置为提交值

6 个答案:

答案 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()没有阻止。在转到下一个语句之前,它不会等待表单提交。提交后你想要发生的任何事情都需要进入回调函数。