1

我有一个表单,我正在使用 jQuery Table AddRow 插件动态地将行添加到表中,问题是当您选择一个菜单项时,我试图将菜单项放入左侧的文本框中. 它适用于第一行,但我不知道如何让它与通过插件添加的行一起工作。

你可以在这里看到我的代码:http: //jsfiddle.net/VXNzd/

这是jQuery代码:

// This moves the select box text to the input box
$('#mnu_names').change(function() {
    var mnuProduct = $("#mnu_names").find(':selected').text();
    var mnuCleanProduct = mnuProduct.split(' - ');
    $('#topping_name').attr('value', mnuCleanProduct[0]);
});
// This code is needed to add and delete rows with the plugin
$(".toppings_add").btnAddRow({

通过访问顶部的 jsfiddle 链接可能更容易了解我在说什么。当它加载使用选择框并选择某些东西时,它会将该信息放入没有价格信息的文本框中。添加新行并重试。不会工作,不知道如何使它工作。

4

1 回答 1

2

正如tomhallam所说,问题是您的ID不是唯一的。$.change()也不适用于运行后添加的块。您应该改用$.on('change',...).

我更新了您的代码并将其发布在http://jsfiddle.net/PDPbn/5/上。

修改后的 jquery 代码如下:

$(document).on('change','.mnu_names',function() {
    var mnuProduct = $(this).find(':selected').text();
    var mnuCleanProduct = mnuProduct.split(' - ');
    $(this).parentsUntil('tbody').find('.topping_name').attr('value', mnuCleanProduct[0]);
});
于 2012-04-30T15:02:32.810 回答