处理具有相同内容的多个标签的最佳方式

时间:2012-02-21 04:54:40

标签: jquery ajax post tabs jquery-ui-tabs

我正在使用jQuery选项卡(来自此示例:http://jqueryui.com/demos/tabs/#manipulation)并且我进行了设置,以便创建的每个选项卡检索相同的数据以允许用户输入相同类型的多个记录(即允许用户进入多个课程)。一旦他们完成了在这些不同选项卡上输入他们的课程,我如何能够单击“保存”并将数据发送到另一个页面以将其添加到数据库中。

选项卡的内容有jQuery / JS,当我开始添加超过1个选项卡时,功能会中断 - 我认为是因为相同的变量名称?避免这种情况的最佳方法是什么?通过将.click(function(){jQuery中的事件更改为.live('click',function(){?

然后,当将表单数据发布到另一个页面以将其添加到数据库时,您将如何循环它?字段上是否有id?

2 个答案:

答案 0 :(得分:0)

这里有一些可能性,如果没有代码示例,很难给出准确而全面的建议。但是:

  1. 页面中只能有一个ID。即使您的标签是“隐藏”的,它们的内容也是DOM的一部分。如果您要复制ID属性,则标记无效,JavaScript将无法正确定位它们。

  2. 如果您正在使用类,则jQuery选择器将返回一个对象数组。在某些情况下(取决于函数),进一步链接的函数将仅作用于数组的第一个成员而不是所有成员。

  3. 如果通过Ajax返回新内容,那么您确实需要切换到委派的侦听器,而不是使用.click()。你提到.live(),但对于jQuery 1.7+,这是不推荐的;您应该使用具有委派语法的.on()。 API文档会告诉您如何使用.on().live()替换为$(document).on(),但最好选择更近的祖先...... $('#someContainer').on('click', '.target', function() {});其中#someContainer和。 target只是示例...选择一个永远不会被销毁的容器选择器,以及一个有效的目标选择器。

答案 1 :(得分:0)

检查选项卡的数量并相应地命名文本框ID(txtCourse1,txtCourse2 ...)。 您可以通过以下方式获取选项卡内容面板:

$(".ui-widget-content").each(function (){
   $(this).find("input")....
});
相关问题