2014-10-01 61 views
0

我女巫我追加投入和下拉列表中動態創建表...動態創建的下拉式選單更改功能

與阿賈克斯我得到下拉JSON值,並將其分配給某個變量:

var s = $('<select />'); 

$.each(obj1, function (value, obj) { 
    $('<option />', { value: obj.Value, text: obj.Text }).appendTo(s); 
}); 

後來我行添加到我的表:

$("#tblData tbody").append("<tr>" + 
    "<td><input type='text' style=\"width:180px\" class=\"phone\"/></td>" + 
    "<td><input type='text' style=\"width:180px\"/></td>" + 
    "<td><input type='text' style=\"width:180px\"/></td>" + 
    "<td style=\"overflow: hidden;\"><select style=\"width:212px\" class=\"dialog\">" + s.html() + "</ select></td>" + 
"</tr>"); 

這是怎麼回事一些按一下按鈕,並與每點擊我添加一行。 這項工作非常完美(我用3個輸入和一個下拉列表生成新的行)。

部分,我不知道,我不能找到是如何更改我的下拉更改(同一行)的一些輸入值。 (如果我有5行,並且我改變了第三行的下拉菜單,我想在第三行改變一些輸入)。

我開始:

$(".partnerTable tbody").on("click", "tr", function (e) { 
      alert($(this).find(".phone").val()); 
    }); 

這是嘗試,我看行響應點擊(partnerTable)是我的班表。 我得到每一行的迴應,這是很好的一部分。

但現在的問題是如何使下拉改變。

我嘗試了諸如:

$(".partnerTable tbody").on("click", "tr", function (e) { 
    $(this).find("dialog").change(function() { 
     alert($(this).find(".phone").val()); 
    }); 
}); 

但這不工作。是否有可能做出這樣的事情?

感謝名單

回答

1

如果表中還可以動態地創建再這樣寫:

$(document).on("change", ".dialog", function (e) { 

     // do something 

     }); 

如果表是對DOM負載創建,你可以寫這樣的:

$(".partnerTable tbody").on("change", ".dialog", function (e) { 

    // do something 

    }); 

和你的方式你可以試試這個:

$(".partnerTable tbody").on("click", "tr", function (e) { 
    $(this).on("change",".dialog",function() { 

    }); 
});