我有这个代码连接删除链接的确认对话框,我通过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
属性..
答案 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;
这将抓住。