2013-02-25 79 views
1

我想要使用相同的結果而不使用onchange屬性。 有些想法?在不使用onchange屬性的情況下獲取選定值

這裏的HTML:

<select onchange="filtro(this)" id="tipo" name="noticia/conteudo/tipo"> 
    <option value="Layout1">Layout1</option> 
    <option value="Layout2">Layout2</option> 
    <option value="Layout3">Layout3</option> 
    <option value="Layout4">Layout4</option> 
    <option value="Layout5">Layout5</option> 
</select> 

這裏是JS:

function filtro(a) { 
    var x = (a.value || a.options[a.selectedIndex].value); 
    alert(x); 
    if (x == "Layout4"){ 
     alert('test4'); 
    } 
} 
+1

如果不改變,什麼時候? – Barmar 2013-02-25 19:05:08

+0

我想要ecxatly代碼正在做什麼,但不使用onchange標籤裏面的選擇標籤 – user1309015 2013-02-25 19:14:31

回答

0

你只能在JS做到這一點沒有屬性

document.getElementById("id").onchange=function(){ ... }; 
+0

幫助哥們兒! – user1309015 2013-02-25 19:36:22

1

你可以做的簡單方法

var e = document.getElementById("tipo"); 
var tipoValue = e.options[e.selectedIndex].value; 

會使tipoValue成爲選定選項的值。 如果你想獲得的文字,你可以做到這一點:

var e = document.getElementById("tipo"); 
var tipoText = e.options[e.selectedIndex].text; 

總的來說我的建議是考慮引進一些JavaScript庫,如jQuery

+0

TKS幫助budy ... – user1309015 2013-02-25 19:37:38

+0

歡迎您! – vaske 2013-02-26 15:37:13

2

您可以添加一個事件監聽器避免使用onchange屬性。

HTML:

<select id="tipo" name="noticia/conteudo/tipo"> 
    <option value="Layout1">Layout1</option> 
    <option value="Layout2">Layout2</option> 
    <option value="Layout3">Layout3</option> 
    <option value="Layout4">Layout4</option> 
    <option value="Layout5">Layout5</option> 
</select> 

的JavaScript:

function filtro(a) { 
    var x = (a.value || a.options[a.selectedIndex].value); 
    alert(x); 
    if (x == "Layout4"){ 
     alert('test4'); 
    } 
} 

var sel = document.getElementById('tipo'); 
sel.addEventListener('change', function() { filtro(sel) }, false); 

的jsfiddle:http://jsfiddle.net/jeffshaver/HfmWV/7/

+0

Tks dude ...就是這樣! – user1309015 2013-02-25 19:34:06

+0

唯一的問題,它不適用於IE 8或更低版本...... – user1309015 2013-02-25 20:15:25

+0

你知道如何解決? – user1309015 2013-02-25 20:26:23

相關問題