カスタマイズされたデザインと動的メッセージを含むJavaScript確認ボックスが必要です。
私の問題は次のとおりです。その呼び出しで呼び出す関数が必要です。そのポップアップの結果を受け取るにはどうすればよいですか。(はいまたはいいえのように)。それは可能ですか?
コード
if (confirm('Are you sure?')){
//Do the process
}
else{
//Show Error
}
カスタムスタイルで確認を上書きしたい
カスタマイズされたデザインと動的メッセージを含むJavaScript確認ボックスが必要です。
私の問題は次のとおりです。その呼び出しで呼び出す関数が必要です。そのポップアップの結果を受け取るにはどうすればよいですか。(はいまたはいいえのように)。それは可能ですか?
コード
if (confirm('Are you sure?')){
//Do the process
}
else{
//Show Error
}
カスタムスタイルで確認を上書きしたい
ユーザーが応答できるようにする非表示のdivを作成するのはどうですか
<div id="confirm" class="noshow">
<div id="messageContent" class="message"></div>
<div id="okButton" onClick="doConfirm(true)" class="button"></div>
<div id="cancelButton" onClick="doConfirm(false)" class="button"></div>
</div>
これで、メッセージを簡単に設定できるようになりました。同様に、 andアクションをand関数でgetElementById('messageContent')
処理できるようになりました。ok
cancel
doConfirm(true)
doConfirm(false)
簡単に言えば、JavaScriptは次のようになります
doConfirm(flag){
return flag;
}
のようなCSSを持っています
.noshow{display:none;}
これで、実行時にjavascriptからhtmlを作成し、イベントハンドラーをアタッチできますが、これは私が考えることができる最も単純な方法です。
私にとって、このソリューションははるかに優れています:
html:
<div id='modal_dialog'>
<div class='title'></div>
<input type='button' value='yes' id='btnYes' />
<input type='button' value='no' id='btnNo' />
</div>
js:
function dialog(message, yesCallback, noCallback) {
$('.title').html(message);
var dialog = $('#modal_dialog').dialog();
$('#btnYes').click(function() {
dialog.dialog('close');
yesCallback();
});
$('#btnNo').click(function() {
dialog.dialog('close');
noCallback();
});
}
使用する:
dialog('Are you sure you want to do this?',
function() {
//If yes do something
console.log("yes");
},
function() {
//If no do something else
console.log("no");
}
);
追加しなかった場合は、jqueryを追加することを忘れないでください。
この質問に対するalnorth29の回答に基づく
これを行うためにコールバックを使用できます
グローバルjavascriptファイルに追加されるハンドラーを確認します
function ConfirmInDiv(message, okcallback, cancelcallback) {
$('#confirmation-holder').show();
$("#confirmation_message").text(message);
$('#Confirmation_Ok').unbind('click');
$('#Confirmation_Ok').click(okcallback);
$('#Confirmation_Cancel').unbind('click');
$('#Confirmation_Cancel').click(cancelcallback);
}
function HideConfirmDiv() {
$('#confirmation-holder').hide();
}
HTMLは、レイアウトファイルに存在する必要があります。
<div id="confirmation-holder" style="display:none">
<div id="confirmation_message"></div>
<a id="Confirmation_Ok" href="#" class="button">OK</a>
<a id="Confirmation_Cancel" href="#" class="button light-button">Cancel</a>
</div>
そして、JavaScriptを呼び出したい場合は、次のことを確認してください。
これの代わりに
function delete()
{
if(confirm("Delete?")
{
console.log('deleted');
}
else
{
console.log('delete cancelled');
}
}
これを行う
function delete()
{
function ok()
{
console.log('deleted');
HideConfirmDiv();
}
function cancel()
{
console.log('delete cancelled');
HideConfirmDiv();
}
ConfirmInDiv('Delete?', ok, cancel);
}