繁体   English   中英

通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码

[英]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);
}

注意clickonclick区别。

的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);
});

http://jsfiddle.net/userdude/ub26g/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM