为什么alert()是空的?

时间:2012-10-26 09:35:59

标签: javascript jquery html

我有一个包含输入表单和按钮的HTML:

<input id="nameField" type="text">
<input id="submitBtn" type="button" value="Submit">

脚本:

$(function() {
    var name = $('#nameField').val();

    var data = {
        name: name
    }

    $('#submitBtn').click(function() {
        alert(data.name);
    });
});

在字段中输入文本,然后单击按钮。但警报是空的,控制台中没有错误。

2 个答案:

答案 0 :(得分:8)

这是因为您在文档准备就绪后,在用户输入文本之前很久就会初始化data

你可以这样做:

$(function() {
    $('#submitBtn').click(function() {
       var name = $('#nameField').val();
       var data = {
          name: name
       };
       alert(data.name);
    });
});

答案 1 :(得分:3)

$(function() {
$('#submitBtn').click(function() {
var name = $('#nameField').val();

var data = {
    name: name
}
    alert(data.name);

});

});

单击节点时需要字段的当前值,而不是页面加载时。 您可以将“data”对象声明为global(window.data)变量,只需更改“click”函数中的“name”值。