2013-02-21 16 views
1

我需要加载一个带有dynamyc标签的表单,读取一个确定标签数量的XML。 我有一个'选项卡模板',每个选项卡都使用此代码编写。 第一个问题是与字段的ID。如果我有2个(或更多)选项卡,每个选项卡字段具有相同的ID,我无法获取/设置它们。动态加载带有标签的表格

对于创建标签,我使用HTML功能是这样的:

var divtab1 = $("#tab1").html(); 
var tabCode = "<div id='tab"+ i +"' class='tab_content'> "+ divtab1 +"</div>"; 
finalhtml = finalhml + tabCode; 

其中#TAB1是“标签模板”,我这样做会为每个标签。 最后我把finalhtml放在div中。

$("#bodyTabs").html(finalhtml); 

这些标签制作得很好,但是一些功能如datepickers和ckeditors(文本编辑器)不起作用。

我不知道如何动态更改字段ID,不知道这种方式是否是最好的。

有什么建议吗?

非常感谢!

+0

使用css'class' ?? – Vimalnath 2013-02-21 12:29:39

+0

tab_class仅用于视图设计 – Arnau 2013-02-21 12:32:24

+0

@Arnau:不工作?意味着您无法从客户端或服务器端访问该控件?还是不渲染?请解释一下? – 2013-02-21 12:58:21

回答

0

最后我找到一个很好的解决方案。使用C#我建立一个和我每次迭代:

<%  List<String> Idiomas = loadIdiomas(); 
     foreach (String idioma in Idiomas) 
     { %> 
     <div id="tab_<%=idioma%>" class="tab_content"> 
      <input type="text" name="<%=idioma%>_title" id="<%=idioma%>_title" /> 
      ... 

这样我有不同的id字段为每个选项卡避免使用JavaScript。它更加优雅,解决了日期选择器和文本编辑器的问题。

谢谢大家的回答:)

0

无论何时我们使用日期选择器或任何编辑器,我们都必须初始化文档就绪事件。 因此,我会建议,只要你改变标签内容,只需调用尊重控制器的Init方法,事情就会按预期工作。

干杯

1

尝试

$('#ID').attr('id', 'ID2');

改变ID

+0

不错,这是改变ID的工作,它很简单:) – Arnau 2013-02-21 14:40:56

+0

;)不要忘记接受回答:) – 2013-02-21 15:38:23