点击提交按钮后,点击'点击'我使用' alert'显示从输入文本中分配值的变量。为什么返回空白值?然后,我尝试创建一个包含'警告'对于那个变量,我在'点击'中使用了这个功能。显示导致文本框值的事件。为什么会这样?两种操作有何不同? HTML:
<form id="myForm">Your name:
<input type="text" id="nametxt" />
<input type="button" value="submit" id="submit" />
</form>
jQuery :(第一次实验)
var name = "";
$("#submit").click(function(){
name = $("#nametxt").val();
});
alert(name); ==============> Unexpected result: blank value
jQuery :(第二次实验)
var name = "";
var makeSentence = function() {
return name + " is nice!";
}
var myFunc = function() {
alert(makeSentence());
}
$( "#submit" ).click(function() {
name = $('#nametxt').val();
myFunc(); ==========================> Expected result: "yourname is nice!" is alerted.
});
为什么实验2显示名称的值,但实验1不显示
答案 0 :(得分:2)
在您的第一个实验中,您的alert()
超出了函数定义,这意味着在定义函数后立即调用它,而不是在您单击按钮时调用。根据您的实验1,这是一个working jsFiddle。
另外,您可以考虑使用console.log()
进行测试而不是alert()
。就个人而言,我觉得它更方便。
答案 1 :(得分:1)
var name = "";
$("#submit").click(function(){
name = $("#nametxt").val();
});
alert(name);
在此示例中,name
设置为blank.
字符串。
当页面加载时,alert
函数将被执行,将提醒空白值。
这是预期的行为并非出乎意料。
请注意,在此示例中,alert
仅在页面加载时执行一次。
但是,与anonymous function
事件相关联的submit
会更新name
变量。
您可以访问name
Javascript Console
变量进行验证
var name = "";
var makeSentence = function() {
return name + " is nice!";
}
var myFunc = function() {
alert(makeSentence());
}
$( "#submit" ).click(function() {
name = $('#nametxt').val();
myFunc();
});
在此示例中,alert
函数在调用myFun
时执行。点击myFunc
后会调用#submit
。
name
变量在与anonymous function
的{{1}}事件相关联的click
被执行时设置。
#submit
在此示例中点击alert
的次数增加了。