10
<select data-myattr="123" id="cboTest" 
        onchange="SayHello(this.data-myattr)">

これは機能しません。私がdata-それを外せば、それは機能しますが、私が読んだことから、それをそのようにすることはhtml5安全です。ただし、そのようにすると、「Microsoft JScriptランタイムエラー:'myattr'は未定義です」というメッセージが表示されます

これは私の超複雑な関数です:

function SayHello(msg) {
    alert(msg);
}

前もって感謝します。

4

3 に答える 3

14

このようにしてみてください:

<select data-myattr="123" id="cboTest" 
        onchange="SayHello(this.getAttribute('data-myattr'))">
于 2012-07-24T17:15:10.967 に答える
1

のようなgetAttribute()ことをする必要があります

次に例を示します。

<select data-myattr="123" id="cboTest" 
onchange="SayHello(this.getAttribute('data-myattr'))">
    <option>1</option>
    <option>2</option>
</select>

また、HTMLが乱雑になるため、インラインスクリプトの使用は避けてください。addEventListener代わりに/ attachEvent(古いIE)を使用してください。

于 2012-07-24T17:17:39.303 に答える
1

表現:

onchange = "SayHello(this.data-myattr)">

this.data マイナス として解釈されていmyattrます。使用する必要があります:

onchange="SayHello(this.getAttribute('data-myattr'))"

代わりは。

于 2012-07-24T17:15:33.587 に答える