JQuery val()返回空

时间:2013-03-25 03:58:51

标签: javascript jquery

我被困在一个看起来像是一个微不足道的问题上,我可能会因为错过这个而踢我自己......不管怎样,我的问题是我没有从文本字段中获取价值。

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>

5 个答案:

答案 0 :(得分:10)

在函数中分配变量。

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

至于你的另一个问题,“如果我把$(document).ready();包含在我的脚本中,函数generate就不会被调用。任何想法为什么......?”

这是因为范围而发生的。在添加generateQuery处理程序时,将document.ready包装在匿名函数中,因此button onclick="generateQuery()"代码无法显示它。

答案 1 :(得分:3)

这里它将在页面加载时调用。因此,无论何时页面加载,文本框都是空的。尝试在函数内写入。

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

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

答案 2 :(得分:1)

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

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

        }
</script>

答案 3 :(得分:0)

在这里,您要定义调用函数以使其运行的函数,使用此generateQuery();行来调用您的函数。

答案 4 :(得分:-1)

你在哪里调用函数????

我认为你需要:

<script type="text/javascript">

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


    });     

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

        }
</script>