0

私はコンボボックスのようなリストを作成しています

ここに画像の説明を入力

これは、テキスト ボックスのonkeyup で呼び出す関数です

function findword(id, comptext){

        if(comptext.value != ''){
            for (i=0;i<id.options.length;i++){
                id.options[i].selected = false;
            }

            var sc=comptext.value;
            var r, re;
            re = /\(/i;
            r = sc.replace(re, "\\(");
            sc=r;
            re = /\)/i;
            r = sc.replace(re, "\\)");
            sc=r;
            re = /\./i;
            r = sc.replace(re, "\\.");
            sc=r;
            re = /\+/i;
            r = sc.replace(re, "\\+");
            sc=r;
            re = /\?/i;
            r = sc.replace(re, "\\?");
            sc=r;
            var cmplength=sc.length;
            var rex=RegExp(sc, "gi");
            for (i=0;i<id.options.length;i++){
                var sts=id.options[i].text.substring(0,cmplength);
                var result=sts.search(rex);
                if(result>-1){
                    id.options[i].selected = true;
                }
            }
        }else{
            for (i=0;i<id.options.length;i++){
                id.options[i].selected = false;
            }
        }
    }

この関数を使用すると、テキスト ボックスの指定された入力で始まるすべての値を選択できます。たとえば、apiと入力すると、 apiで始まるすべての値が選択されますが、 colorと入力すると何もしません。

ここで、上記の機能を確認し、さらに追加する必要があるチェックと、これらのチェックをどこに追加する必要があるかを指摘してください。

4

1 に答える 1

0

さて、私はちょうど自分自身を修正しました

function findword(id, comptext){

        if(comptext.value != ''){
            var srcit = comptext.value;

            for (i=0;i<id.options.length;i++){
                id.options[i].selected = false;
            }

            var patt = new RegExp(srcit, 'i');

            for (i=0;i<id.options.length;i++){

                var result = patt.exec(id.options[i].text);
                if(result != null){
                    id.options[i].selected = true;
                }
            }
        }else{
            for (i=0;i<id.options.length;i++){
                id.options[i].selected = false;
            }
        }
    }

http://www.w3schools.com/js/js_obj_regexp.asp

于 2012-08-20T11:31:29.963 に答える