0

HTML

<input type='text' id='searchable'value='hello world' />
<input type='hidden' id=x value='hel' />

非表示の入力の値の終わりから #searchable の終わりまで、#searchable から textfrom を選択するにはどうすればよいですか?

修正しました ありがとうございました

    $('input.complete').live('keyup.autocomplete', function(){
        var hi=$(this).val().toUpperCase();
        var was=this;//PROBlEM was here... was=$(this)
            $(this).autocomplete({
                source: function(request, response) {
                        $.ajax({ url: '<?=base_url()?>ajax/ac',
                        data: { 'term': this.term,'page': 'clinic','key': this.element.attr('data-complete')},
                        dataType: "json",
                        type: "POST",
                        success: function(data){
                            if(!data.length){
                                var result = [{label: 'No match found',value: response.term}];
                                response(result);
                            }else{
                                response(data);
                                $(was).val(data[0]['value']);
                                was.selectionStart=hi.length;
                                was.selectionEnd=data[0]['value'].length;
                            }
                        }
                    });
                },
                select: function(event, ui){},
                minLength: 2,
            });
        });
4

2 に答える 2

2

これを試してみてください

(function() {
    var search = $('#searchable')[0],
        searchvalue = search.value,
        xtext = $('#x').val(),
        startAt = searchvalue.indexOf(xtext) + xtext.length;
    search.selectionStart = startAt;
    search.selectionEnd = searchvalue.length;
}());

ライブデモ

x値が常に検索値の最初の文字から一致を開始する場合、は常に返され、安全に削除できるためsearchvalue.indexOf(xtext)冗長です。0

参考文献:

注:selectionStartおよびselectionEndは HTML5 の一部であるため、IE < 9 のサポートはありません。独自のタイプアヘッドを展開する場合、古い IE をサポートする予定がある場合は、テキスト入力要素にオートコンプリートを適用する前に、これらの機能をテストすることをお勧めします。

于 2013-01-20T16:19:40.573 に答える
0

どうぞ... Firefox と Chrome でテスト済みです...

これにより、非表示の値の端から文字列の端までが強調表示されます。

$("#searchable")[0].selectionStart = $("#x").val().length;
$("#searchable")[0].selectionEnd = $("#searchable").val().length;

これにより、最初から非表示の値までが強調表示されます。

var s = $("#x").val();

$("#searchable")[0].selectionStart = 0;
$("#searchable")[0].selectionEnd = s.length;
于 2013-01-20T16:18:34.067 に答える