【发布时间】:2016-01-08 23:05:13
【问题描述】:
我正在尝试使用 jQuery 为在线角色创建器应用程序构建用户界面。我正在尝试通过单击一键随机生成角色统计信息。这是我第一次在不平凡的应用程序中使用 jQuery。
问题是,当我单击按钮时,表单内不会生成数字。如果我删除 disabled 属性,它仍然不起作用,所以我知道这不是问题。
如果我要尝试一下,我猜 jQuery 中的 $() 不喜欢使用变量,但如果是这样的话,我不知道这样做的正确方法是什么。在 jQuery 网站上单击填写多个表单的示例对此没有用处,因为我需要确保单独调用 dice 函数来填写每个表单。
我的 javascript 代码如下所示:
$(document).ready(function(){
//stats as an array
stats = ["#smarts", "#rwp", "#driving", "#cool", "#bod", "#luck", "#looks", "#bonk"];
//roll dice function
function dice (x, n, y) {
var result = 0;
for(i = 0; i < x; i++) {
result = result + Math.floor((Math.random() * n) + 1);
}
result = result + y;
return result;
}
//roll each stat function
function rollStats(stats) {
for(stat in stats) {
$(stat).val(dice(1, 6, 0));
}
}
//on button click roll each stat
$("#stats").click(rollStats(stats));
});
作为参考,我的 html 表单的相关部分如下所示:
<form class="create-teenager">
Smarts:
<input type="number" name="smarts" id="smarts" disabled />
<br/><br/>
Relationship with Parents:
<input type="number" name="rwp" id="rwp" disabled />
<br/><br/>
Driving:
<input type="number" name="driving" id="driving" disabled />
<br/><br/>
Cool:
<input type="number" name="cool" id="cool" disabled />
<br/><br/>
Bod:
<input type="number" name="bod" id="bod" disabled />
<br/><br/>
Luck:
<input type="number" name="luck" id="luck" disabled />
<br/><br/>
Looks:
<input type="number" name="looks" id="looks" disabled />
<br/><br/>
Bonk:
<input type="number" name="bonk" id="bonk" disabled />
<br/><br/>
<button id="stats">Roll Stats</button>
</form>
【问题讨论】:
-
只是出于好奇,这是在某处上课吗?与游戏中的角色和他们的统计数据非常相似的问题似乎经常被问到。不打扰你,只是想知道。
-
不,这不是为了上课,刚刚完成学业,而是在我上这堂课的时候,我们唯一为商业应用程序编程过的东西。不过,我被一个更有经验的 Javascript 程序员建议这是一种很好的练习方式。
标签: javascript jquery loops random