Javascript 选择带有参数的onchange事件
我在一个循环中创建n个选择:Javascript 选择带有参数的onchange事件,javascript,select,Javascript,Select,我在一个循环中创建n个选择: selCom = document.createElement("SELECT"); selCom.setAttribute("id", ("commessa"+n)); 我想为每个更改分配一个函数:(对于禁用其他,请选择具有相同索引的选项) 如果OnSelectionChange(此)起作用,OnSelectionChange(此,n)不起作用 function OnSelectionChange(select,indexDisable) { var
selCom = document.createElement("SELECT");
selCom.setAttribute("id", ("commessa"+n));
我想为每个更改分配一个函数:(对于禁用其他,请选择具有相同索引的选项)
如果OnSelectionChange(此)起作用,OnSelectionChange(此,n)不起作用
function OnSelectionChange(select,indexDisable) {
var selectedOption = select.options[select.selectedIndex];
if ((selectedOption.value)=="Work"){
document.getElementById("Attivita"+indexDisable).disabled=true;
}else{
document.getElementById("Attivita"+indexDisable).disabled=false;
}
}
传递参数的正确形式是什么?您可以添加事件侦听器,而不是像那样设置html属性
function OnSelectionChange(indexDisable) {
var select = this;
var selectedOption = select.options[select.selectedIndex];
if ((selectedOption.value)=="Work"){
document.getElementById("Attivita"+indexDisable).disabled=true;
}else{
document.getElementById("Attivita"+indexDisable).disabled=false;
}
}
selCom.addEventListener('change', function(n){
OnSelectionChange(n);
}, false);
您可以添加事件侦听器,而不是像这样设置html属性
function OnSelectionChange(indexDisable) {
var select = this;
var selectedOption = select.options[select.selectedIndex];
if ((selectedOption.value)=="Work"){
document.getElementById("Attivita"+indexDisable).disabled=true;
}else{
document.getElementById("Attivita"+indexDisable).disabled=false;
}
}
selCom.addEventListener('change', function(n){
OnSelectionChange(n);
}, false);
另一种方法是使用data-*属性
<div data-id="1" onclick="dataTest()">TEST!</div>
以下是有关数据-*属性的更多信息另一种方法是使用data-*属性
<div data-id="1" onclick="dataTest()">TEST!</div>
以下是有关数据-*属性的更多信息还有,这里是