javascript - Javascript 仅在字段中生成 1 个字符
问题描述
我有一个脚本可以在单击按钮时生成 10 个字符的代码。我想将代码移植到输入文本框的值字段中。我相信存在冲突,因为文本框位于带有click(function(event) {
附件的表单中。
HTML/CSS
<div id="add_wrap">
<form method="post" action="voucher_add_post.php">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td>Voucher value: </td>
<td><input type="text" id="value" size="10"></td>
</tr>
<tr>
<td>Code</td>
<td><input type="text" id="code" size="20"> <button id="generate">Generate</button></td>
</tr>
<tr>
<td>How many vouchers?</td>
<td><input type="text" id="amount" placeholder="Leave blank for only one voucher" size="40"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" id="submit" value="Submit" /></td>
</tr>
</table>
</form>
<div id="message"></div>
</div>
Javascript/JQuery
<script>
$("#submit").click(function(event) {
event.preventDefault();
var headline = $('#headline').val();
var author = $('#author').val();
var details = $('#details').val();
var question = $('#question').val();
var reward_img = $('#reward_img').val();
var reward_cap = $('#reward_cap').val();
var days = $('#days').val();
$.ajax({
type: "POST",
url: "pages/comp_add_post.php",
data: "headline="+headline+"&author="+author+"&details="+details+
"&question="+question+"&reward_img="+reward_img+"&reward_cap="+reward_cap+"&days="+days,
success: function(data){
$("#message").html(data);
}
});
});
$("#generate").click(function(event) {
event.preventDefault();
function codeGen(length)
{
var code = "";
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i=0; i<length; i++);
code += chars.charAt(Math.floor(Math.random() * chars.length));
return code;
}
$("#code").val(codeGen(10));
});
</script>
问题是它只value=
在 ID 为 的输入框属性中生成单个字符generate
。
如果我使用这样做的onClick="codeGen()"
方法,那么它会提交表单。
解决方案
我认为问题出在你的for
循环中。您目前将其写为:
for (var i=0; i<length; i++);
code += chars.charAt(Math.floor(Math.random() * chars.length));
但是;
afterfor
循环声明终止了语句。如果将其重写为:
for (var i = 0; i < length; i++) {
code += chars.charAt(Math.floor(Math.random() * chars.length));
}
它似乎工作。
推荐阅读
- bash - 用于在其中包含 .git 目录的所有子文件夹中进行 git pull 的代码的 if 语句问题
- android - 如何修复错误:找不到 recyclerview-v7.jar (com.android.support:recyclerview-v7:28.0.0)
- java - 如何从 onClickListener 之外的 onClickListener 获取值
- matlab - 重命名子系统的输入和输出
- excel - 如何通过 Excel VBA 修改 Powerpoint Chart ChartData
- gensim - gensim/models/ldaseqmodel.py:217:RuntimeWarning:在 double_scalars 中遇到除以零
- python - 图例仅出现在 1 行的全息视图中
- amazon-web-services - 在 Cognito 用户池中注册时如何检查用户是否已经存在具有相同的电子邮件或电话号码
- bash - 使用 awk 命令解析 /etc/passwd 而不为每一行创建输出文件并从那里读取
- r - 维恩图未在 highcharter 包中呈现