单击按钮后,在输入字段中生成秘密代码



此代码不起作用,我不知道为什么我正在学习Javascripta,但我第一次也在互联网上寻找解决方案,但我发现类似的代码生成,什么将有效

html,javascript,jquery

function gencode(length) {
    var result           = "";
    var characters       = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    var letters          = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var numbers          = "0123456789"
    var charactersLength = characters.length;
    for ( var i = 0; i < length; i++ ) {
        result += characters.charAt(Math.floor(Math.random() * charactersLength));
    }
    return result;
};
$('#btn-generate').click(function(){
    $('#secret-code').val = gencode(8);
});

<div class="form-row">
                                    <div class="form-holder">
                                        <fieldset>
                                            <legend>'.$lang['register']['form']['secret-code']['header'].'</legend>
                                            <input type="text" id="secret-code" name="secret-code" placeholder="'.$lang['register']['form']['example']['secret-code'].'" class="required">
                                        </fieldset>
                                    </div>
                                    <div class="form-holder">
                                        <div class="center">
                                            <a class="btn tooltip tt50 generate" id="btn-generate">
                                                <span class="gencode">
                                                    <em>'.$lang['register']['form']['secret-code']['button'].'</em><i id="icon-gencode" class="fa fa-code fa-2x"></i>
                                                </span>
                                            </a>
                                        </div>
                                    </div>
                                </div>

val()是一种方法,因此要更新值,您可以执行该方法为:

在匹配元素集中设置每个元素的值。

function gencode(length) {
  var result = "";
  var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  var numbers = "0123456789"
  var charactersLength = characters.length;
  for (var i = 0; i < length; i++) {
    result += characters.charAt(Math.floor(Math.random() * charactersLength));
  }
  return result;
};
$('#btn-generate').click(function() {
  $('#secret-code').val(gencode(8));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-row">
  <div class="form-holder">
    <fieldset>
      <legend>Legend</legend>
      <input type="text" id="secret-code" name="secret-code" placeholder="" class="required">
    </fieldset>
  </div>
  <div class="form-holder">
    <div class="center">
      <a class="btn tooltip tt50 generate" id="btn-generate">
        <span class="gencode">
            Generate
            <i id="icon-gencode" class="fa fa-code fa-2x"></i>
        </span>
      </a>
    </div>
  </div>
</div>

要在jQuery中设置值,您应该使用 val 作为函数

$('#secret-code').val(gencode(8));
$('#secret-code').val(gencode(8));

它只是设置每个匹配元素的值。您可以从下面的链接中阅读所有说明:

http://api.jquery.com/val/

最新更新