动态创建下拉变更功能

时间:2014-10-01 11:53:12

标签: jquery

我在女巫中动态创建了表格,我附加了输入和下拉列表......

使用ajax我得到下拉列表的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 个答案:

答案 0 :(得分:1)

如果table也是动态创建的,那么写一下:

 $(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 () {

    });
});