gpt4 book ai didi

Javascript 只在字段中生成 1 个字符

转载 作者:太空宇宙 更新时间:2023-11-03 21:05:10 24 4
gpt4 key购买 nike

我有一个脚本可以在单击按钮时生成 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>&nbsp;</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>

问题是它只生成一个字符到 ID 为 generate 的输入框的 value= 属性中。

如果我使用 onClick="codeGen()" 方法执行此操作,那么它会提交表单。

最佳答案

我认为问题出在您的 for 循环中。你目前把它写成:

for (var i=0; i<length; i++);
code += chars.charAt(Math.floor(Math.random() * chars.length));

但是 for 循环声明之后的 ; 终止语句。如果您将其重写为:

for (var i = 0; i < length; i++) {
code += chars.charAt(Math.floor(Math.random() * chars.length));
}

这似乎有效。

fiddle :https://jsfiddle.net/s3ndkpue/

关于Javascript 只在字段中生成 1 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54319625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com