如何强制jQuery对话框等待响应

时间:2013-06-28 03:15:11

标签: jquery email jquery-ui-dialog

我希望用户通过jQuery UI对话框确认,当点击mailto链接时,他或她接受或拒绝某些条款。当我使用以下代码时,会短暂显示该对话框,但随着页面重定向到默认电子邮件程序,该对话框会自动关闭。

jQuery的:

$(function() {
    .html('Do you accept these terms?')
    .dialog({
        autoOpen: false,
        title: 'Disclaimer',
        resizable: false,
        width: 500,
        modal: true,
        buttons:            
            {
    "Accept": function() {
      $( this ).dialog( "close" );},
    "Reject": function() {
      $( this ).dialog( "close" ); }
 }
 });

$('.email-address').click(function() {
    $dialog.dialog('open');

});
});

HTML:

<a class="email-address" href="mailto:'info@example.com">info@example.com</a>

关于在对话框之前要求回复的最佳方法的任何建议都可以关闭吗?

2 个答案:

答案 0 :(得分:1)

我会从html中删除href =“mailto”,将其设置为#并从你的函数内部运行mailto。

HTML:

<a class="email-address" href="#">info@example.com</a>

JS:

$(function() {
  .html('Do you accept these terms?')
  .dialog({
    autoOpen: false,
    title: 'Disclaimer',
    resizable: false,
    width: 500,
    modal: true,
    buttons:{
      "Accept": function() {
        $( this ).dialog( "close" );
        window.location.href = "mailto:info@example.com";
      },
      "Reject": function() {
        $( this ).dialog( "close" ); }
      }
   });

  $('.email-address').click(function() {
    $dialog.dialog('open');

  });
});

答案 1 :(得分:1)

由于您点击的链接的默认操作,您需要阻止链接的默认操作,并且接受您需要将用户重定向到页面