0

次の要素を含むhtmlフォームがあります

1) リスト ボックス (ファイル名のリストを含む)

  s1.txt2013
  s2.txt2013
  s3.txt2012
  s4.txt2012

2) テキスト ボックス (ユーザーは 2013 などのパターンを入力します)

3) ボタン

デフォルトでは、リスト ボックスには上記の 4 つのファイル名が含まれています。

ユーザーがテキスト ボックスにテキストを入力し (たとえば、テキスト ボックスに 2013 を入力すると)、ボタンを押すと、テキスト ボックスに記載されているテキストに従ってリスト ボックスの内容が除外されます。

この場合、ボタンをクリックした後、リスト ボックスには 2 つの値のみが含まれます (つまり、2013 が表示される値のみ)。

s1.txt2013
s2.txt2013

これどうやってするの。私は次のようにしました..リストボックスのすべてのオプション値をjavascript配列に取るjavascript関数を使用しています。現在、2013 の配列を検索して、同じリスト ボックスに 2013 を含む値を入力することができません。

誰でもこれを行う方法を教えてもらえますか?

4

2 に答える 2

2

2 つのリストボックス (選択タグ) が必要な場合があります。そのうちの 1 つはメイン データ ソースとして非表示にされ、もう 1 つはユーザーに表示されます。次のコードを使用onclick="buttonClicked()"してボタン属性を追加できます。

function buttonClicked () {
    var textbox = document.getElementById('YOUR TEXTBOX ID'),
        listbox = document.getElementById('YOUR SELECT ID'),
        mainListbox = document.getElementById('YOUR MAIN SELECT ID');

    listbox.innerHTML = '';
    for (var childIndex = 0; childIndex < mainListbox.children.length; childIndex++) {
        var child = mainListbox.children[childIndex];
        if (child.innerHTML.search(textbox.value) != -1) {
            option = document.createElement('option');
            option.innerHTML = child.innerHTML;
            listbox.appendChild(option);
        }
    }
};
于 2013-05-29T04:10:23.120 に答える
1

.test を使ってみましたか? 私にとって、これは良いアプローチです。

http://www.w3schools.com/jsref/jsref_regexp_test.asp

<script>

var str="Hello world!";
//look for "Hello"
var patt=/Hello/g;
var result=patt.test(str);
document.write("Returned value: " + result); 

//look for "W3Schools"
patt=/W3Schools/g;
result=patt.test(str);
document.write("<br>Returned value: " + result);

</script>
于 2013-05-29T03:54:45.617 に答える