jquery:将参数传递给modal

时间:2013-07-06 15:00:18

标签: php javascript jquery html dom

我在表格中有以下内容,每行重复一次:

<a <?php echo 'id="'.$id.'"'; ?> class="custom-dialog-btn btn btn-small">
   <i class="icon-trash"></i>
</a>

其中id对于每一行都不同,因为它来自数据库中的表,它是主键。

然后,我使用了以下jQuery代码:

$(".custom-dialog-btn").bind("click", function (event) {
                $("#mws-jui-dialog").dialog("option", {
                    modal: false
                }).dialog("open");
                event.preventDefault();
            });

      $("#mws-jui-dialog").dialog({
        autoOpen: false,
        title: "Alert",
        modal: true,
        width: "640",
        buttons: [{
            text: "NO",
        id: "cancel_button",
            click: function () {
                $(this).dialog("close");
            }
        },
     {
        text: "OK",
        id: "confirm_button",
            click: function () {
                myremovefuntion(id); // I need the id
        }}
    ]
    });

指的是对话框:

<div id="mws-jui-dialog">
    <div class="mws-dialog-inner">
    <h2>Are you sure you want to delete?</h2>
    </div>
</div>

如何将id传递给模态?

3 个答案:

答案 0 :(得分:3)

您可以将数据属性附加到对话框div,如下所示;

$('a').click(function (e) {
    e.preventDefault();
    $("#your_dialog").data('mycustomdata', $(this).prop('id')).dialog('open');
});

然后像这样撤退

    $("#your_dialog").dialog({
        autoOpen: false,
        resizable: false,
        height:200,
        modal: true,
        buttons: {
            Cancel: function() {
                $(this).dialog('close');
            },
            'Delete': function() {
                $(this).dialog('close');
                var mydata = $(this).data('mycustomdata'); // = gives you the id of anchor element
// some delete logic
            }
        }
    });

答案 1 :(得分:0)

使用以下代码获取ID:

var id = $(this).prop("id");

您将获得您点击的元素的ID。

答案 2 :(得分:0)

虽然Emin的答案肯定有效,但我想知道这个fabuolus jQuery UI库是否具有类似于JavaScript的原生confirm()方法的对话风格?或者可能传递回调函数?这将消除包含业务逻辑的对话代码的需要。