按下提交按钮后的确认对话框

时间:2011-11-17 17:01:56

标签: jquery asp.net-mvc ajax

我有这个代码连接删除链接的确认对话框,我通过POST触发。 当我没有任何POST到MVC控制器动作(没有表单元素)时,这些链接工作正常。但是当我有表单元素的值需要POST回来时,我当然需要一个提交按钮。我也想使用类似的脚本来连接确认对话框和提交按钮。 基本上,对话框应弹出,等待确认,如果确认,继续将表单发布到操作。

/** Delete links wire up **/
var deleteLinkObj;
// delete Link
$('.delete-link').click(function () {
    deleteLinkObj = $(this);  //for future use
    $('#delete-dialog').dialog('open');
    return false; // prevents the default behaviour
});

/** Delete dialogs initialisation **/
var i18n_deleteButtons = {};
i18n_deleteButtons[i18n.dialogs_continue] = function () {
    $.post(deleteLinkObj[0].href, function (data) {  //Post to action
        if (data == 'True' || data == 'true') {
            deleteLinkObj.closest('tr').hide('fast'); //Hide Row
            //(optional) Display Confirmation
        }
        else {
            //(optional) Display Error
        }
    });
    $(this).dialog('close');
};

上面的代码显然不起作用,因为按钮不是链接而且没有href属性..

1 个答案:

答案 0 :(得分:0)

我会做一些类型检查。您可以使用HTML5数据属性,如下所示:

<button data-url="yoururl" class="delete-button">Button Text</button>

在你的JS中做一个检查:

var my_val = ( !deleteLinkObj[0].href ) ? $('.delete-button').data('url') : deleteLinkObj[0].href;

这将抓住。