2013-05-03 49 views
0

我正在使用ASP.NET MVC 4和最新版本jQuery UIFluent Validation来处理我的服务器端验证。哪里最好添加确认对话框弹出

我试图让jQuery dialog在表单提交之前作为确认弹出窗口工作。用户应该点击是提交表单或取消留在表单上。

我已经谷歌搜索和尝试给出的样本,但我无法得到它的工作。我已经尝试在按钮的单击事件上这样做,没有工作。现在我试图将它添加到表单提交。

我的HTML标记:

<button id="SaveButton" type="submit">Save</button> 

<div id="dialog-confirm" title="Save Customer?"> 
    <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Are you sure you want to save this customer?</p> 
</div> 

我的jQuery代码:

$(document).ready(function() { 
    $('form').submit(function() { 
      $('#dialog-confirm').dialog('open'); 
      return false; 
    }); 

    $('#dialog-confirm').dialog({ 
      autoOpen: false, 
      resizable: false, 
      modal: true, 
      buttons: { 
       'Save': function() { 
        $('form').sumbit(); 
       }, 
       Cancel: function() { 
        $(this).dialog('close'); 
       } 
      } 
    }); 
}); 

,我得到使用上述方法的错误是:

Object doesn't support this property or method 

...和它打破on $('form').sumbit();

如何让这个工作正常?哪里最好补充一点?在按钮上或提交表单时?都?

注意:答案需要基于jQueryjQuery dialog控件。

+0

这绝不是所谓的'sumbit'功能;你在'submit()'之后?还值得注意的是,jQuery UI对话框是非阻塞的... – 2013-05-03 06:22:49

+0

为什么不使用asp.net mvc 4的验证?你可以在你的对话框中添加一个局部视图,然后使用mvc 4的验证表单。 – 2013-05-03 09:36:30

回答

0

你可以试试这个:鉴于:@ Html.ActionLink( “删除”, “DeleteEmp”,新{ID = item.Id},{新的onclick = “返回DeleteConfirm()”})

在脚本中:function DeleteConfirm(){if(confirm(“你确定要删除记录”))return true;否则返回false;我们可以通过下面的例子来说明如何使用这些方法来实现这个功能。 dbml.M_Employees.DeleteOnSubmit(empDelete); dbml.SubmitChanges();返回RedirectToAction(“Index”); }

+1

请格式化您的代码以使其可读。 – 2013-05-03 06:13:28

+0

回答需要关于jQuery对话框控件。 – 2013-05-03 06:20:11

2

试试这个:

$('#dialog-confirm').dialog({ 
     autoOpen: false, 
     resizable: false, 
     modal: true, 
     buttons: [ 
       { 
        text : 'Save', 
        click : function() { 
         $('form').submit(); 
        } 
       }, 
       { 
        text : 'Cancel', 
        click : function() { 
         $(this).dialog('close'); 
        } 
       } 
      ] 
     } 
});