繁体   English   中英

jQuery在下拉列表中添加带有JSON数据的表行

[英]jquery add table row with json data in dropdowns

我有一个带有表格的Web表单,用户可以向其中添加其他行。 该表的第一行包含相关的下拉列表。 下拉列表中填充了来自引用文件的json数据。 我正在使用的代码如下:

//the add row function
$(function(){
var newgroup = $('<tr>').addClass('rec-rows');
$('#addRow').click(function(e){
    e.preventDefault();
$('.rec-rows').first().clone().appendTo(newgroup).appendTo('#details');     }); 

});

//onChange function
$(".rec-rows #section").live('change',function(){


var sSec =$(this).parent().find('#section').val();  

$("#divParts").hide();
$("#divDesc").hide(); 
$("#divGroup").hide(); 
if(sSec=="select") {
$("#divCategory").hide();
} else {
$.getJSON("static/site_category.json",  function(json) {
var catJson = json[sSec];
var options = "<option value=\"select\">Select Area Type</option>";
for(i=0;i<catJson.length;i++) {
options +="<option value=\""+catJson[i].ky+"\">"+catJson[i].val+"</option>"
}

理论上,将添加新行,并且我粘贴的onChange代码将对其他每行起作用。 但是,结果根本不是这样。 相反,当添加行并且用户在新行上进行选择时,值将在第一行中更新。表的第一部分如下所示:

<td width="" align="left"> 
<div>
<select id="section" name="section" style="margin-top:15px;"> 
<option value="select">Select Area</option> 
<option value="a">a</option> 
<option value="b">b</option> 
<option value="c">c</option> 
</select> 
</div> 
</td> 

我感谢任何帮助使此代码按预期工作的方法-这将是一个简单的添加行,其中下拉选择仅在找到它们的行上更新。 谢谢。

您可以在这里查看我的答案,即如何在表的开头动态添加行:

如何使用tds动态生成表行?

这可能对您有帮助。

或者我也看到一个问题。

更改$(“#section”)。change(

至:

$("#section").live('change',...

这可能就是为什么新的下拉菜单不起作用的原因

得到了解决方案! 建议在以下情况下声明父项:

$(".section").change( function () {
var sSec =$(this).val();  
context = $(this).parents("tr");
if(sSec=="select") {
$("#divCategory", context).hide();
} else {
$.getJSON("static/site_category.json",  function(json) {
var catJson = json[sSec];
var options = "<option value=\"select\">Select Area Type</option>";
for(i=0;i<catJson.length;i++) {
options +="<option value=\""+catJson[i].ky+"\">"+catJson[i].val+"</option>"

现在,对于每一次“添加行”单击,都会添加一行,并且在用户选择该行(仅该行)时,下拉列表也会更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM