这是一个简单的代码 -
$(document).ready(function() {
var genvalue="";
$("input:radio[name=gender]").click(function() {
genvalue = $(this).val();
alert (genvalue);
});
alert (genvalue);
//genvalue = $('#gender').val();
//alert (genvalue);
value = $("#edu_det1").val();
more code.................goes ......
我希望alert (genvalue)
的值即使不是通过点击事件调用也会发出警报,但是当单选按钮单击第一个警报提醒的值时,第二个函数没有警告正确的值。我给出空值。
答案 0 :(得分:1)
Javascript具有functioncope - 变量的生命周期仅限于执行它的封闭函数。
您在点击功能中创建一个新变量。相反,您应该为现有变量赋值。所以你需要写
var genvalue="";
$("input:radio[name=gender]").click(function() {
/* omit the "var" to assign a value to the variable genvalue*/
genvalue = $(this).val();
});
alert(genvalue) // alerts genvalue, in this case probably ""
// because the alert gets called before the click-handler fired
而不是:
var genvalue="";
$("input:radio[name=gender]").click(function() {
/* This creates a new variable which is only visible in the click-function */
var genvalue = $(this).val();
});
alert(genvalue) // will always alert "" and never the value assigned to
// the var inside your click handler function
答案 1 :(得分:0)
如果您希望您的genvalue变量在文档就绪函数之外可用,请在函数外部定义它。
var genvalue="";
$(document).ready(function() {
$("input:radio[name=gender]").click(function() {
genvalue = $(this).val();
alert (genvalue);
});
alert (genvalue);
此外,一旦定义了变量,就不需要再次使用var了。
答案 2 :(得分:0)
genvalue不在函数范围内,因为您在函数内部使用var
定义它。
var genvalue="";
$(document).ready(function() {
genvalue="";
$("input:radio[name=gender]").click(function() {
genvalue = $(this).val();
alert (genvalue);
});
alert (genvalue);
//genvalue = $('#gender').val();
//alert (genvalue);
value = $("#edu_det1").val();
答案 3 :(得分:0)
第二次调用alert
时,不会提供正确的值,因为在加载文档时会调用 。
这意味着没有可能 单选按钮上调用了click
回调,因此genvalue
变量将会未定义。
您还在函数中使用genvalue
关键字声明var
,该关键字将范围指向该函数体,使其无法从{{1}外部访问回调函数。
答案 4 :(得分:0)
单击单选按钮时,以及一旦触发文档就绪事件,就会提醒genvalue。第二个是第一个被触发,它没有任何值,因为你在顶部声明为
var genvalue="";
如果您想以任一方式提醒正确的值,请尝试this fiddle
$(document).ready(function() {
var genvalue=$("input:radio[name=gender]").val();
$("input:radio[name=gender]").click(function() {
genvalue = $(this).val();
alert (genvalue);
});
alert (genvalue);
});