2011-11-17 113 views
0

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

/** 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

'var answer = confirm(“这里的一个问题?”)'?或者你在找别的东西吗? – ManseUK

回答

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; 

这会抢无论是。

+0

这是指出我在正确的方向,虽然我不会在这个例子中使用数据属性,但谢谢。正如我所看到的,jquery对数据属性的支持在支持HTML5和非HTML5的浏览器中都有效,这是一个很好的选择。 – mare

相关问题