-1

私はいたるところを検索しましたが、適切な解決策が見つからないか、クライアント側の検証で可能かどうかがわかりません。

私のクライアントは、ドロップダウンでの選択に基づいて、ユーザーを固定長の数字の組み合わせに制限するよう求めています。

例:
ドロップダウン選択
ユーティリティ A
ユーティリティ B
ユーティリティ C

テキスト入力
ユーザーがユーティリティ A を選択した場合、8 桁のアカウント番号を入力する必要があります。
ユーザーがユーティリティ B を選択した場合、10 桁のアカウント番号を提供する必要があります。
ユーザーがユーティリティ C を選択した場合、12 桁のアカウント番号を提供する必要があります。

答えを提供する単純なJavaScriptソリューションを知っている人はいますか? 私はこれで死ぬほど殴りました。

ありがとう!

4

2 に答える 2

0

どうぞ!

HTML

<select id="Select" onchange="checkText()">
  <option value="8"> A</option>
  <option value="10"> B</option>
  <option value="12"> C</option>
</select>

<input id="Enter" type="text" onchange="checkText()" />

<div id="Message"></div>

JavaScript

function checkText(input) {
  if(document.getElementById("Enter").value.length != document.getElementById("Select").selectedOptions[0].value) {
    document.getElementById("Message").innerHTML = "Your ID has to be " + document.getElementById("Select").selectedOptions[0].value + " digits long";
  } else {
    document.getElementById("Message").innerHTML = "";
  }
}

これはまったく素晴らしいことではありません。しかし、私はあなたのためにあなたの仕事をしません。ここから簡単にピックアップできます。

jsFiddleも作成しました

于 2013-01-17T15:37:31.213 に答える
0

selectドロップダウンはどこにありinput、入力文字列は次のように使用できます。

if ( !/^\d+$/.test(input) ||
    input.length != [ 8, 10, 12 ][ select.selectedIndex ] ) {
    // Input invalid
}

@Amberlandのフィードバックに加えて:

または、より一般的な解決策として、必要な桁数を各オプション要素の値として格納し、次の<option value=8>Utility A</option>ように使用します。

if ( !/^\d+$/.test(input) || input.length != select.value ) {
    // Input invalid
}
于 2013-01-17T15:43:28.883 に答える