2016-11-23 13 views
2

私はを追加しますの内容は編集可能なドロップダウンリストにテキストを入力すると内容が表示されます。そのためのjsですか?私は編集可能なドロップダウンリストに "オートリスト機能"が必要です

$(document).ready(function(){ 
 
    
 
    $(".editableBox").change(function(){   
 
     $(".timeTextBox").val($(".editableBox option:selected").html()); 
 
    }); 
 
});
.editableBox { 
 
    width: 75px; 
 
    height: 30px; 
 
} 
 

 
.timeTextBox { 
 
    width: 54px; 
 
    margin-left: -78px; 
 
    height: 25px; 
 
    border: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="wrapper"> 
 
    <select class="editableBox">   
 
     <option value="1">First Option</option> 
 
     <option value="2">Second Option</option> 
 
     <option value="3">Third Option</option> 
 
     <option value="4">Fourth Option</option> 
 
     <option value="5">Fifth Option</option> 
 
     <option value="6">Sixth Option</option> 
 
     <option value="7">Seventh Option</option> 
 
    </select> 
 
    <input class="timeTextBox" name="timebox" maxlength="5"/> 
 
</div>

答えて

1

このようにしてみてください:私は、次のコードを使用している

を編集しvalue.The後

$(".timeTextBox").change()機能と同じインデックスを持つ値を置き換えるを

$(document).ready(function(){ 
 
    
 
    $(".editableBox").change(function(){   
 
     $(".timeTextBox").val($(".editableBox option:selected").html()); 
 
    }); 
 
    $(".timeTextBox").change(function() { 
 
     $(".editableBox option:selected").html($(this).val()); 
 
    console.log('content will replaced with new one') 
 
    }) 
 
});
.editableBox { 
 
    width: 75px; 
 
    height: 30px; 
 
} 
 

 
.timeTextBox { 
 
    width: 54px; 
 
    margin-left: -78px; 
 
    height: 25px; 
 
    border: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="wrapper"> 
 
    <select class="editableBox">   
 
     <option value="1">First Option</option> 
 
     <option value="2">Second Option</option> 
 
     <option value="3">Third Option</option> 
 
     <option value="4">Fourth Option</option> 
 
     <option value="5">Fifth Option</option> 
 
     <option value="6">Sixth Option</option> 
 
     <option value="7">Seventh Option</option> 
 
    </select> 
 
    <input class="timeTextBox" name="timebox" /> 
 
</div>

+0

これは、最初のオプションとして入力内容を追加するだけです。実際に私はそれを入力すると自動的にコンテンツをリストする必要があります。例: "six"、 "Sixth Option"の入力を開始すると、リストに表示されます。 – Vishnu

+0

あなたは文字列に一致する必要があるか、またはインデックスと一致する必要があります – prasanth

+1

私はそのような検索ボックスです。リンクhttp://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_datalistをご覧ください。とhttp://stackoverflow.com/questions/40458669/jquery-search-using-real-time-input-like-filter-option-in-angular-js/40458846#40458846 – prasanth

1

あなたは.timeTextBoxdiv.listspan.listラベルを必要とし、イベントが起こったeditableBox、上inputまたは​​を登録し、div.listの内容は正規表現でマッチさせることができるためにどの変更します。コードは次のよう:

HTML

<div class="wrapper"> 
<select class="editableBox">   
    <option value="1">First Option</option> 
    <option value="2">Second Option</option> 
    <option value="3">Third Option</option> 
    <option value="4">Fourth Option</option> 
    <option value="5">Fifth Option</option> 
    <option value="6">Sixth Option</option> 
    <option value="7">Seventh Option</option> 
</select> 
<input class="timeTextBox" name="timebox" maxlength="5" /> 
<div class="list"></div> <!-- NEW --> 
</div> 


CSS

.editableBox { 
    width: 75px; 
    height: 30px; 
} 

.timeTextBox { 
    width: 54px; 
    margin-left: -78px; 
    height: 25px; 
    border: none; 
} 

.list { // NEW 
    background: grey; 
    display: none; 
} 

jQueryのコード

$(function() { 
    $('.timeTextBox').on('keypress keydown change input', function() { 
    var typed = $('.timeTextBox').val(); 
    var re = new RegExp(typed); 
    var matches = []; 

    if (!typed) { 
     $('.list').css('display', 'none'); 
     return; 
    } 

    $('.editableBox').children().each(function(__, option) { 
     var content = $(option).text(); 

     if (re.test(content)) { 
     matches.push(content); 
     } 
    }); 

    if (matches.length > 0) { 
     $('.list').html(matches.join('<br>')).css('display', 'block'); 
    } else { 
     $('.list').css('display', 'none'); 
    } 
    }); 
}); 

私の英語は貧しいです。あなたが不適切な文法を指摘すれば、私は心地よくなります。

+0

ちょうど隠されたdivを表示します。 – Vishnu

+0

ここを見ることができます。 [codepen] http://codepen.io/catssay/pen/zowpQx – catssay

関連する問題