做一个确认框

时间:2013-08-27 18:43:05

标签: javascript jquery html

我正在尝试创建自己的对话框。我想为此使用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 overlaycontent会在其顶部创建一个白色框。 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。

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:2)

您需要从确认对话框中捕获结果,例如

var x = confirm("Are you sure you are ok?");
if (x) {
    alert("Good!");
} else {
    alert("Too bad");
}

答案 2 :(得分:1)

你可以这样做。

<script language="javascript">
function deleteuser(userid){
  if(confirm('Delete user?')) {
     //'Ok' is clicked
  }
  else {
     //'Cancel' is clicked
  }
}
</script>