0

7 つのフォーム フィールドに 1 つのランダムな文字を生成する必要があります。フィールドの例は以下のようになります。

文字は繰り返すことができますが、文字とその文字が繰り返される回数にのみ基づいています

例えば

  • ax 7 (a は 7 回しか繰り返せません)
  • bx 5 (b は 5 回しか繰り返せません)
  • cx 2 (c は 2 回だけ繰り返すことができます)

等々

<input type="text" name="1" maxlength="1" />
<input type="text" name="2" maxlength="1" />
<input type="text" name="3" maxlength="1" />
<input type="text" name="4" maxlength="1" />
<input type="text" name="5" maxlength="1" />
<input type="text" name="6" maxlength="1" />
<input type="text" name="7" maxlength="1" />

これまでのところ、

<script language="javascript" type="text/javascript">
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 1;
var randomstring = '';
for (var i=0; i<string_length; i++) {
    var rnum = Math.floor(Math.random() * chars.length);
    randomstring += chars.substring(rnum,rnum+1);
}
document.randform.randomfield.value = randomstring;
}
</script>

これは1つのフィールドにしか配置されないため、少し迷っています。すべての文字 (各フィールドに 1 つ) を生成できるように JavaScript を最適化し、文字が許可されている範囲を超えて繰り返されないようにする方法がわかりません。

何か案は?

4

1 に答える 1

0

document.randform.randomfield.value = randomstring;

指定したブロックにランダムフィールドが指定されていません。として解釈されていると思われます0。その場合、最初のフィールドを取得する可能性があります。または、指定していないコード セクションの特定のフィールドに初期化することもできます。または (おそらく、私の JavaScript に関する知識が限られているため)、実際には HTML スニペットに表示されていないフィールドの名前です。

とにかく、これはおそらくあなたのエラーの場所です。値を複数の場所に保存する場合は、値を保存する場所を変更する必要があります。

于 2013-05-25T02:44:07.237 に答える