1

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');
    } 
}
4

3 に答える 3

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/

于 2013-02-25T19:10:50.990 に答える
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;

一般的に、私の提案は、 jQueryなどの JavaScript ライブラリの導入を検討することです。

于 2013-02-25T19:09:06.243 に答える
0

これは、属性のないjsでのみ実行できます

document.getElementById("id").onchange=function(){ ... };
于 2013-02-25T19:06:42.023 に答える