Jquery 处理具有相同内容的多个选项卡的最佳方法

Jquery 处理具有相同内容的多个选项卡的最佳方法,jquery,ajax,post,tabs,jquery-ui-tabs,Jquery,Ajax,Post,Tabs,Jquery Ui Tabs,我使用的是jQuery选项卡(本例中:),我对其进行了设置,以便创建的每个选项卡检索相同的数据,允许用户输入相同类型的多个记录(即允许用户输入多个课程)。一旦他们在这些不同的选项卡上完成了课程输入,我将如何单击“保存”并将数据发送到另一个页面以将其添加到数据库中 选项卡的内容有jQuery/JS,当我开始添加多个选项卡时,功能中断——我假设这是因为相同的变量名?避免这种情况的最佳方法是什么?通过将.click(函数(){jQuery中的事件)更改为.live('click',函数(){ 然后,当

我使用的是jQuery选项卡(本例中:),我对其进行了设置,以便创建的每个选项卡检索相同的数据,允许用户输入相同类型的多个记录(即允许用户输入多个课程)。一旦他们在这些不同的选项卡上完成了课程输入,我将如何单击“保存”并将数据发送到另一个页面以将其添加到数据库中

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

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


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

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

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

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


  • 检查相应的选项卡数量和名称文本框ID(txtCourse1、txtCourse2…)。 您可以通过以下方式获取选项卡内容面板:

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