2016-01-22 32 views
0

此代码是一个PHP软件(使用Smarty的模板引擎)和它的作品:的onclick按钮事件与确认对话框

<input type=\"button\" class=\"btn btn-primary\" value=\"{$LANG["phrase_send_email"]}\" onclick=\"ms.edit_submission_page_send_email($submission_id); this.disabled=true;\" />"; 

用户点击按钮,软件会:

  • 发送电子邮件给收件人
  • 的按钮被禁用,以防止多个邮件意外点击发送不止一次

我想要它做更多:添加弹出确认对话框。目的是提醒人们在发送电子邮件之前先阅读确认对话框中的文本信息,然后先做一些事情。

因此,如果用户点击OK:

  • 实行按钮功能
  • 禁用按钮

,或者如果用户取消:

  • 对话框中取消并没有电子邮件功能执行。返回屏幕。

有大量的JavaScript if else/confirm的例子。但是,我是新来的JavaScript和不知道如何ms.edit_submission_page_send_email($ submission_id)适合JavaScript的世界。

如何将一个把所有这一切都为JavaScript函数?

回答

0

尝试这种方式。

<input type=\"button\" class=\"btn btn-primary\" value=\"{$LANG["phrase_send_email"]}\" onclick=\"{literal}return checkValidMailSend(this, $submission_id){/literal}\" />"; 

{literal} 
<script> 
function checkValidMailSend(this, submissionid) { 
    if(!confirm("Are you sure to send mail?")) { 
     return false; 
    } 
    else { 
     ms.edit_submission_page_send_email(submissionid); 
     this.disabled=true; 
    } 
} 
</script> 
{/literal} 
+0

非常感谢您的贡献!你的代码非常接近(除非我设置错误)。我点击按钮,它会报告:'ReferenceError:checkValidMailSend未定义onclick()'。然而,作为一个实验,我从代码中删除了'this'。对话框提示和一切正常,除了按钮没有禁用。我删除'this.disabled = TRUE;'和用'的document.getElementById( “EmailButton”)代替它禁用= TRUE;'和插入'ID = “EmailButton”'到输入元件。所有作品。任何想法为什么'this'在这种情况下不起作用? –