2014-02-26 52 views
0

我有一个表与依赖下拉列表。当我选择第一行它给我的选定项目的值,但是当我添加更多的行并从下拉列表中选择一个项目给我第一行的价值。麻烦克隆表行与依赖下拉列表

这里是克隆行我的js代码的代码

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#add").click(function() { 
     $('#products tbody>tr:last').clone(true).insertAfter('#products tbody>tr:last'); 
     //$("#products tbody>tr:last").each(function() {this.reset();}); 
     return false; 
    }); 
}); 

这里是我的showdata()函数

function showData(str){ 
var e = document.getElementById("pid[]"); 
var pid = e.options[e.selectedIndex].value; 
//xmlhttp.open("GET","viewData?nid="+str+"&pid="+pid,true); 
//xmlhttp.send(); 
alert(pid);} 

这里是我的html代码

<table id="products" align="center" class="bordered"> 
<thead> 
    <tr><th>Item Name</th> 
    <th>Action</th></tr> 
</thead> 
<tbody> 
    <tr> 
     <td><?php echo form_dropdown('product',$product,null,'id="pid[]" onChange="showData(this.value);"');?></td> 
     <td> 
      <button id="add">+</button> 
     </td> 
    </tr> 
</tbody> 

回答

1

当你克隆最后TR,这也是克隆button.So的,当你点击第二个按钮的ID,它是引用第一个ID。 身份证不应该与每个W3C建议相同。在你的代码标识和类不需要的按钮和下拉检查此的jsfiddle

http://jsfiddle.net/v4nAa/

,你也可以参考下面的代码为下拉无需showData()函数

$("#products tbody>tr").on('change','select',function() { 
var pid = $(this).val(); 
//xmlhttp.open("GET","viewData?nid="+str+"&pid="+pid,true); 
//xmlhttp.send(); 
alert(pid); 
}); 
+0

感谢它帮助我很多..你能告诉我如何删除一行..? –

+0

看到这个更新小提琴http://jsfiddle.net/v4nAa/1/ –

+0

当我添加第二行并选择它显示第一个单元格上的值的项目时出现另一个问题这里是问题http://jsfiddle.net/rahat090255/Px2GR/3/ –

0

尝试使用​​dynamically added elements一样,

$('#products').on('change','#pid[]', function(){ // use class instead of id #pid[] 
    alert('id'+this.value); 
});