背景 - 私はテキストフィールドを持つフォームを持っています。ユーザーは2〜6桁の整数を入力します。各キーストロークで、javascript関数はドロップダウンからの値のマッチングと呼ばれます。onKeyUp関数がすべての結果を返さない
私のテキストフィールド:
<input type="text" name="orgSICCode" value="" allownull="FALSE" size="5" maxlength="10" datatype="dtNumeric" onKeyUp="ActivateOption(description,this.value);" onBlur="this.value = description.options[description.selectedIndex].value;" emsg="Must choose a SIC Code before you can continue.">
私のドロップダウンフィールド:
<select name="description" STYLE="width:275px;" onChange="orgSICCode.value = this.options[this.selectedIndex].value;sic_code_description.value = this.options[this.selectedIndex].text;">
<option value="">Select One ...</option>
<option value="085101">085101 - Forest management services</option>
<option value="0831">0831 - Forest Products</option>
<option value="083100">083100 - Forest products</option>
<option value="083199">083199 - Forest products, nec</option>
<option value="08">08 - Forestry</option>
</select>
マイjavascript関数のActivateOption:
function ActivateOption(selectObj, strValue) {
for(var idx=0;idx<selectObj.options.length;idx++) {
if(selectObj.options[idx].value.substring(0,strValue.length) == strValue) {
selectObj.selectedIndex = idx;
return true;
}
}
selectObj.selectedIndex = 0;
return false;
}
ユーザーが '08'、最初のオプションその08値、 "08 - 林業"オプションです。ポピュレートするオプションは '085101'、 '085101 - 森林管理サービス'です。
何か間違っていますか?
ありがとうございました。
感謝をチェックするために、より良いフィルタを使用しますが、それは動作していないようです。それは私の現在の関数に同様の結果を返しています。 – etm124
私のif条件の最初の部分は、FIRSTではなく、私の 'strValue'の値にマッチしているようです。 – etm124