[英]generating a alphanumeric code using javascript in code generation, by clicking a button in form
嗨,我想知道是否有可能通过单击html按钮将字母数字代码(由javascript生成)传递到html文本框中?
所以我的意思是,我有一个文本框和一个按钮,如果单击该按钮,它将从Java脚本代码获取生成的代码,并将显示在文本框中...
这是我的代码(如果可以编辑,请编辑整个代码...):
<html>
<head><title> Untitled Document </title></head>
<body>
<script type="text/javascript">
function randomString(length, chars) {
var mask = '';
if (chars.indexOf('a') > -1) mask += 'abcdefghijklmnopqrstuvwxyz';
if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if (chars.indexOf('#') > -1) mask += '0123456789';
var result = '';
for (var i = length; i > 0; --i) {
result += mask[Math.round(Math.random() * (mask.length - 1))];
}
return result;
}
document.write(randomString(16, 'aA#'));
</script>
<form>
<label for="gencode"> Generated Code: </label>
<!-- here is the problem I don't know what am I -->
<input type="text" id="gencode" name="gencode">
<!-- going to put on he onclick and on the value -->
<input type="button" value="generate now">
</form>
</body>
</html>
我必须承认,您正在尝试使用遮罩做什么,我只是相信您的话。 那不是我的专长。 但是,我认为这可以解决您遇到的问题。
请注意,IE8和7支持node.attachEvent
而不是node.addEventListener
。 IE9 确实支持node.addEventListener
。 如果您需要这些旧版IE的支持,则需要进行一些检查:
if (addEventListener) {
document.addEventListener('click', myClickHandler);
} else if (attachEvent) {
document.attachEvent('onclick', myClickHandler);
}
注意click
和onclick
区别。
的HTML
<h1>Generate Code</h1>
<form>
<label for="length">Length: </label>
<input type="text" id="length" name="length" value="10">
<label for="characters">Characters: </label>
<input type="text" id="chars" name="chars" value="akdie">
<label for="gencode"> Generated Code: </label>
<input type="text" id="gencode" name="gencode">
<button type="button" id="generate">Generate Now</button>
</form>
Java脚本
function randomString() {
var gencode = document.getElementById('gencode'),
length = document.getElementById('length').value,
chars = document.getElementById('chars').value,
mask = '',
result = '';
console.log(length, chars);
if (chars.indexOf('a') > -1) mask += 'abcdefghijklmnopqrstuvwxyz';
if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if (chars.indexOf('#') > -1) mask += '0123456789';
for (var i = length; i > 0; --i) {
result += mask[Math.round(Math.random() * (mask.length - 1))];
}
console.log(result);
gencode.value = result;
}
window.addEventListener('load', function load(){
document.getElementById('generate').addEventListener('click', randomString);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.