簡體   English   中英

jQuery在動態創建的下拉菜單上調用onchange函數

[英]Jquery Call onchange function on dynamically created dropdown

如何在動態創建的下拉菜單上調用onchange函數。 代碼如下:HTML代碼:

<img id="addColumn" src="images/icons/panel_add.gif" alt="Add Column" onclick="addColumnDynamically('q_123_456_789')"/>
<div class = "q_123_456_789"></div>

使用Javascript

function addColumnDynamically(currentObjId){
maxRepeatedColumnSeq = maxRepeatedColumnSeq+1;
var dropDownIdStr = currentObjId;
dropDownIdStr = dropDownIdStr.substring(dropDownIdStr.indexOf("_") + 1);;
dropDownIdStr = "q_drop_"+dropDownIdStr+"_"+maxRepeatedColumnSeq;
alert("idStr........"+dropDownIdStr);
$("."+currentObjId).append('<div class="Content22">\
        <br>\
        <input class="input numberElement" type="text" style="width: 25%" id='+currentObjId+"_"+maxRepeatedColumnSeq+'>\
        <select class="selectStyle1" style="width: 25%" id='+dropDownIdStr+'<option value=""></option><option value=""></option><option value="Hours">Hours</option><option value="Days">Days</option><option value="Weeks">Weeks</option><option value="Months">Months</option><option value="Years">Years</option> >\
        <img src="images/icons/panel_remove.gif" onclick="removeColumn(this)">\
        <br>\
    </div>');
 $('#'+currentObjId+"_"+maxRepeatedColumnSeq).on('blur', function () {
alert("Hiii....");
});
alert("Hiii.."+dropDownIdStr);
$('#'+dropDownIdStr).on('change', function () {
alert("getElementById...."+document.getElementById(dropDownIdStr));
});
}

onblur函數正在調用,但onchange沒有調用。 我怎樣才能做到這一點 ?

在您的代碼中更改onchange即可更改! 另外,由於該元素是動態創建的,因此最好使用:

$(document).on(event, element, handler)

在您的情況下:

$(document).on('change', '#'+dropDownIdStr, function () {
alert("getElementById...."+document.getElementById(dropDownIdStr));
});

事件是“更改”,而不是“ onchange”。

$('#' + dropDownIdStr).on('change', function () {
    alert("getElementById...." + document.getElementById(dropDownIdStr));
});

看一下代碼:您錯過了結尾的“>”和結尾的"</select>"

 $(document).ready(function(){ $(document).on('click', '#addColumn', function(evt){ addColumnDynamically('q_123_456_789')} ); }) function addColumnDynamically(currentObjId){ var maxRepeatedColumnSeq = maxRepeatedColumnSeq+1; var dropDownIdStr = currentObjId; dropDownIdStr = dropDownIdStr.substring(dropDownIdStr.indexOf("_") + 1);; dropDownIdStr = "q_drop_"+dropDownIdStr+"_"+maxRepeatedColumnSeq; alert("idStr........"+dropDownIdStr); $("."+currentObjId).append('<div class="Content22">\\ <br>\\ <input class="input numberElement" type="text" style="width: 25%" id='+currentObjId+"_"+maxRepeatedColumnSeq+'>\\ <select class="selectStyle1" style="width: 25%" id='+dropDownIdStr+'><option value=""></option><option value=""></option><option value="Hours">Hours</option><option value="Days">Days</option><option value="Weeks">Weeks</option><option value="Months">Months</option><option value="Years">Years</option></select>\\ <img src="images/icons/panel_remove.gif" onclick="removeColumn(this)">\\ <br>\\ </div>'); alert("Hiii.."+dropDownIdStr); $('#'+dropDownIdStr).on('change', function () { alert("getElementById...."+document.getElementById(dropDownIdStr)); }); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM