6

我被困在一个看似微不足道的问题上,我可能会因为错过这个而自责。无论如何,我的问题是我无法从文本字段中获取值。

HTML:

<form>
        <label for="">Enter Username:</label>
        <input id="usernameText" type="text" size="30" />
        &nbsp;&nbsp;<input type="button" value="Generate" onclick="generateQuery(); return     false;" />
</form>

Javascript:

<script type="text/javascript">

        var username = $("#usernameText").val();

        function generateQuery(){

            alert(username);

        }
</script>

我做了以下if (jQuery) {..操作并确保已加载 JQuery。

在警报中,它显示一个空对话框。

如果我将 包含在$(document).ready();我的脚本中,generateQuery则不会调用该函数。知道为什么..?

<script type="text/javascript">

    $(document).ready(function(){
        var username = $("#usernameText").val();

        function generateQuery(){

            alert(username);

        }
    });     
</script>
4

5 回答 5

10

在函数中分配变量。

function generateQuery(){
  var username = $("#usernameText").val();
  alert(username);
}

至于您的另一个问题,“如果我将 $(document).ready(); 包含在我的脚本中,则不会调用函数 generate 。知道为什么..?”

发生这种情况是因为范围。添加处理程序时,您将包装generateQuery在匿名函数document.ready中,因此它对您的button onclick="generateQuery()"代码不可见。

于 2013-03-25T04:01:34.860 回答
3

在这里它会在页面加载时调用。因此,每当页面加载时,文本框都是空的。尝试在函数中编写。

function generateQuery(){
  var username = $("#usernameText").val();
  alert(username);
}

当您写入时,document.ready它将在页面加载时调用;l。如果您需要用户名的值,则显式调用。

于 2013-03-25T04:01:20.417 回答
1

该值是第一次得出的。所以当页面第一次加载时。

<script type="text/javascript">
        function generateQuery(){
            var username = $("#usernameText").val();
            alert(username);

        }
</script>
于 2013-03-25T04:01:43.077 回答
0

在这里,您正在定义您必须调用该函数才能使其运行的函数,使用此generateQuery();行来调用您的函数。

于 2013-03-25T05:07:55.493 回答
-1

你在哪里调用函数???

我认为你需要:

<script type="text/javascript">

    $(document).ready(function(){
      generateQuery();


    });     

function generateQuery(){
  var username = $("#usernameText").val();
            alert(username);

        }
</script>
于 2013-03-25T04:01:26.733 回答