2013-10-29 50 views
4

Iam嘗試顯示調用javascript函數時的下拉選項。 但最終iam沒有成功。需要幫助 這裏是我的代碼:從javascript函數打開下拉列表

<script> 
function showState(str){ 
$('#Acntname').trigger('click'); 

} 
</script> 
... 
<select class="input_panel" id="Acntname" > 
<option value="0">Select</option> 
<option value="1">Equity Share Capital</option> 
<option value="2">Deprication Fund</option> </select> 

<input type="text" class="input_panel" id="accountname" onkeyup="showState(this.value)"/> 

我用來觸發功能,打開下拉,但它不工作。

+0

是否要顯示下拉列表或獲取選定的下拉選項值? –

+1

[可以使用JS打開HTML選擇以顯示它的選項列表?]的可能重複(http://stackoverflow.com/questions/430237/is-it-possible-to-use-js-to- open-an-html-select-to-show-its-option-list) – CBroe

+0

Found something [here](http://stackoverflow.com/questions/2895608/click-trigger-on-select-box-doesnt-work在jquery) –

回答

0

它不可能toggledrop downtriggering other element

如果你想選擇的select boxtextboxkeyup event值那麼試試這個,

function showState(str){ 
    // alert(str); 
    $('#Acntname option[value="'+str+'"]').prop('selected',true); 
} 

Demo

1

你可以這樣做:

var sel = document.getElementById('Acntname'); 
var len = sel.options.length; 

sel.setAttribute('size', len); 

設置大小回1關閉它

+1

不適用於Firefox。 –

0

無法打開的下拉列表中,但有一個半解你可以做以下

「打開」列表:

$("#Acntname").attr("size","3"); 

$("#Acntname").attr("size","1"); 

到關閉清單。

+0

我們可以打開下拉列表..檢查這個..http://jsfiddle.net/2wUjb/7/ – nik

+3

@Nikhil你的解決方案不適用於Firefox和IE,至少不適合我。 –

+0

哦..我正在檢查它chrome ..我檢查到Firefox和ie也。 – nik

12

在這裏,您可以go..you派遣上下拉mousedown事件做..

Demo Fiddle

JS:

window.showState = function (str) { 
    var dropdown = document.getElementById('Acntname'); 
    var event = document.createEvent('MouseEvents'); 
    event.initMouseEvent('mousedown', true, true, window); 
    dropdown.dispatchEvent(event); 
} 

編輯:這工作完全在Chrome <53,不確定適用於Firefox和IE。

+0

這不適用於用鍵盤上的TAB瀏覽的人。 – Sean

+1

這隻適用於Chrome ... !!!! –

+1

這對我有用!我只是用'dropdown.focus();嘗試{/ *答案的鉻代碼只在這裏* /} catch(e){}'以防止它搞亂Firefox/IE中的任何東西。 Chrome只比沒有好! – Luc