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 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 を使用したくありません。

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);
}

次に、confirm 呼び出しに関数を渡します。

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

確認ダイアログボックスから結果をキャプチャする必要があります。

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