获取启动 jQuery 对话框的按钮引用

4
我有一个页面,其中包含动态生成的可变数量的表格。每个表格列出了一组“产品”,用户可以添加/编辑/删除。在每个表格下面有一个按钮。我希望每个按钮将其上方表格中的产品保存到一个“包裹”中,这只是一组产品。当单击按钮时,我希望它启动一个jQuery对话框表单,在该表单中,用户可以为他们正在创建的包输入名称和描述。
在对话框的“buttons”函数的范围内,是否有一种方法可以获取对首次启动jQuery对话框的按钮的引用?这样,当用户单击对话框中的“保存”按钮时,我可以提交包含在最接近用户单击以启动表单的特定按钮的页面标记中的产品数据和对话框本身中包含的表单(名称和描述)?
编辑:我忘记提到整个页面(所有表格)已经包含在一个表单元素中。这是因为用户还可以将三个表格中的所有产品保存为“机会”,这是一组产品组。以下是一些伪html,显示布局:
<form>
    <table>
    </table>
    <table>
    </table>
    <table>
    </table>
</form>

为了让用户将所有表格中的产品保存到一个“机会”中,我需要将所有三个表格都放在一个表单标签中。然而,当用户在特定表格下点击“保存套餐”按钮时,我只想提交该表格中的数据以及用户在对话框中输入的名称和描述。
2个回答

1

在 JavaScript 中定义一个全局变量,并在其中一个按钮被点击时设置其值。
在此示例中使用了 "id"。

$('.button').click(function(){
   id = $(this).index();
   $('#dialog').fadeIn('1000');
    return false;
});

也许这个可以帮到你:
http://jsfiddle.net/Vm7PL/1/

另外你也可以使用jquery-ui对话框。


0

不确定您使用的是哪种类型的按钮,但这里是使用标准的HTML输入提交按钮

$(document).ready(function () {
    $("input[type='submit']").click(function () {
        var btn = $(this);

        //get the TR the button is in
        var tr = btn.parent().parent(); // first parent will be the TD, second will be TR, third would be the TABLE

        // find other elements in the TR
        tr.find('#someElement').each(function(){
            //do something with the elements
         });
    });
});

谢谢,但这并没有解决我的问题。我的问题涉及到两个按钮,一个有点击事件,它会启动一个包含表单的jQuery对话框,另一个在jQuery对话框内部,应该提交对话框内包含的表单以及与第一个按钮最接近的标记中的数据。我知道如何在第一个按钮的点击事件中引用最接近第一个按钮的表格,就像你上面所做的那样。但我不知道如何从jQuery对话框的按钮函数中引用第一个按钮。 - itsmequinn
我猜我不明白你需要的第一个按钮上是什么。如果你可以从这两个表单中获取所有的数据,那么第一个按钮给你的是什么? - mmeasor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接