window.opener没有将值返回到右侧文本框

时间:2013-03-13 13:32:55

标签: jquery parent-child window.opener

Html代码:

<tr class="item-row">
   <td>
     <input type="button" class='del' value="" style="z-index:16; background-image:url(../images/delete.png); background-repeat:no-repeat; background-position:left center; text-align:right;"/>
   </td>
   <td>
     <input type="button" name="pilihItem[]" value="i" id="pilihItem" class="pilihItem">
   </td>
   <td>
     <input type="text" id="nama_item" name="nama_item[]" value="" style="width: 200px;">
   </td>
</tr>
<tr class="item-row">
   <td>
     <input type="button" class='del' value="" style="z-index:16; background-image:url(../images/delete.png); background-repeat:no-repeat; background-position:left center; text-align:right;"/>
   </td>
   <td>
     <input type="button" name="pilihItem[]" value="i" id="pilihItem" class="pilihItem">
   </td>
   <td>
     <input type="text" id="nama_item" name="nama_item[]" value="" style="width: 200px;">
   </td>
</tr>

打开子窗口的jquery代码:

$("#pilihItem").click(function(){
        var id = 1;
        var name = $(this).prev().attr("name");           
        var url = "../formItem.php?id=" + id + "&name=" + name;

        window.open(url, 'Pilih Item', 'location=1,status=1,scrollbars=1,resizable=no,width=800,height=300'); 
    });

用于将值设置为父窗口的jquery代码:

window.opener.$("#nama_item").val($.trim(nama_item));

enter image description here

问题: 我无法设置按下#pilihItem按钮的#nama_item文本框的值。 它总是在第一行设置文本框。任何帮助都感激不尽。

2 个答案:

答案 0 :(得分:3)

您正在使用ID来选择输入,而应该使用独特的东西。

您需要将ID更改为唯一(无论如何它们在DOM中应该是唯一的),或者将复选框的名称更改为类似...

<input type="text" name="nama_item[1]" value="" style="width: 200px;">

在弹出窗口中更改您的JS以使用此名称而不是ID ...

window.opener.$("input[name='nama_item[1]']").val($.trim(nama_item));

答案 1 :(得分:0)

将ID更改为唯一,或使用array = name =“item_name [1]”更改复选框名称