使用表单字段值作为JavaScript变量的引用

时间:2012-07-11 17:33:29

标签: javascript jquery

我正在尝试使用HTML表单字段的值来定义我在JavaScript函数中使用的变量。我有一个解决方案,但我认为有更优雅的方式来做到这一点。

我有两个名字,男性和女性,我的HTML表单有一组男性和女性的两个单选按钮。提交时,我这样做:

gender = $("#gender input:checked").val(); //get value of checked button
if (gender == "male" ) {
    name = male[Math.floor(Math.random()*male.length)];
} else {
    name = female[Math.floor(Math.random()*female.length)];
}
$("#result").html(name);

我的解决方案是if-else,但我想知道是否有什么东西可以将性别值转换为对同名变量的引用。然后我可以用这样的东西替换if-else:

name = gender[Math.floor(Math.random()*gender.length)];

我很想知道你的想法。谢谢!

2 个答案:

答案 0 :(得分:2)

你可以把性别放在一个对象中:

var genderData = {
   male: [ ... ]
   female: [ ... ]
}

然后使用以下语法:

genderData[gender][Math.floor(Math.random() * genderData[gender].length)]

您还可以简化它以使事物更具可读性:

var gd = genderData[gender];
name = gd[Math.floor(Math.random() * gd.length)];

答案 1 :(得分:0)

如果male / female是全局变量,则可以在window对象中找到它们。在这种情况下,您应该能够使用类似

的内容
name = window[gender][Math.floor(Math.random() * window[gender].length)];

其中gender必须是有效的变量名称。但是,我不鼓励您使用全局变量。而是使用具有属性malefemale的本地对象。