0

我从未使用过 name 属性,但在 MVC 中看起来我必须这样做。

我有

<select name="testname" onChange="Alert()">
<option value="8">Test</option>
</select>

JS

function Alert(){
alert(this.name);
}

结果应该是 alert("testname")

它很简单,但我从未使用过,而且很难在谷歌上找到,因为每个人都在询问获得价值或索引:D

4

1 回答 1

5

问题在于,由于您调用Alert,的方式this是指window,而不是 DOM 元素。您可以将其作为参数传递给函数:

<select name="testname" onchange="Alert(this)">

function Alert(element){
    alert(element.name);
}

有比使用 HTML 属性更好的附加事件处理程序的方法。我建议阅读quirksmode.org 上有关事件处理的各种文章

还要确保您了解this工作原理

当然你也可以写

<select name="testname" onchange="alert(this.name)">

如果您使用的是 jQuery,那么您应该使用它来绑定事件处理程序。例如:

$('select[name=testname]').change(function() {
    alert(this.name);
});

看看jQuery 教程并花时间阅读API 文档,这是值得的。

于 2012-05-28T01:30:51.033 回答