0

我正在尝试制作自己的对话框。我想为此使用jquery。对于我网站上的某些按钮,我需要一个确认对话框(例如“您确定要删除”是/否)。当对话框处于活动状态时,站点的其余部分不应该是可点击的。

所以,我做了这个:

<div class="overlay" id="overlay" style="display:none;">
  <div class="overlaycontent" id="overlaycontent">
    <div id="overlaytext" class="overlaytext ">
      <span id="overlaymessage" class="mediumtext bold">Deze klant verwijderen?</span>
      <br><br>
      <button id="nobutton" class="button1 highbutton hand" onclick="confirmno()">Nee</button>&nbsp;&nbsp;
      <button id="yesbutton" class="button2 highbutton hand" onclick="confirmyes()">Ja</button>
    </div>
  </div>
</div>

ID覆盖在整个页面上。ID 覆盖内容在其顶部创建一个白框。ID overlaytext 居中消息 ID overlaymessage 包含问题/消息。ID nobutton 是拒绝的按钮 :) ID yesbutton 是.. 猜猜看 :)

现在,要显示一条消息的 javascript:

function confirm(message,nobutton,yesbutton){
$('#overlaymessage').html(message);
$('#nobutton').html(nobutton);
$('#yesbutton').html(yesbutton);
$('#overlay').show();
}
function confirmno(){
$('#overlay').hide();
}
function confirmyes(){
????
}

到目前为止,它工作正常(当然除了是按钮,请继续阅读),但对于下一步我缺乏知识。假设我在某处有一个按钮可以删除我网站上的用户。

<button class="redbutton" onclick="deleteuser(22)">

该按钮需要像这样的javascript:

<script language="javascript">
function deleteuser(userid){
  confirm('Delete user?','No','Yes');
  ??????  
}
</script>

现在问号在哪里,我希望函数根据用户单击是或否的事实来做一些事情。如何抓住这个?我没有任何想法。请帮帮我。我不想使用 Jquireui.dialog。

4

3 回答 3

3

这里的问题是你不能在 javascript 中暂停执行,所以你需要调整你的确认函数(顺便说一下,你应该重命名它,因为 JS 有一个原生的确认函数)。摆脱你是按钮的onclick,并像这样调整你的确认功能:

function confirm(message,nobutton,yesbutton,yesfunction){
  $('#overlaymessage').html(message);
  $('#nobutton').html(nobutton);
  $('#yesbutton').html(yesbutton);
  $('#overlay').show();
  $('#yesbutton').off("click").click(yesfunction);
}

然后,将一个函数传递给您的确认调用:

function deleteuser(userid){
  function deleteConfirmed() {
    // delete code here
  }
  confirm('Delete user?','No','Yes',deleteConfirmed);
}
于 2013-08-27T19:02:30.453 回答
2

You need to capture the result from your confirm dialogue box e.g.

var x = confirm("Are you sure you are ok?");
if (x) {
    alert("Good!");
} else {
    alert("Too bad");
}
于 2013-08-27T18:45:20.510 回答
1

你可以简单地做到这一点。

<script language="javascript">
function deleteuser(userid){
  if(confirm('Delete user?')) {
     //'Ok' is clicked
  }
  else {
     //'Cancel' is clicked
  }
}
</script>
于 2013-08-27T18:47:36.137 回答