2016-06-22 10 views
-2

私は1つのアプリケーションを作成しました。アプリケーションでは、JavaScriptの機能をたくさん確認しています。Javascriptの代替手段はありますか?

confirm("Do you want to proceed"); 

私はデフォルトの確認UIが嫌いです。私はより良いUIでカスタマイズされた確認を使用したい。

問題:

私はカスタマイズされた確認のためにいくつかのオプションを得ました。しかし、私はそれらを使用する場合、私はすべてのデフォルトの確認方法(変更が必要)を変更する必要があります。

最小限の変更でこれを達成する方法はありますか?

のような:

window.confrim = function() { 
     /* 
      What logic I should write which will return the 
      value(true or false) selected by user. 
     */ 

} 

私は、すべてのHTMLファイルにインポートされた1つのJSファイルを持っています。

したがって、上記の関数ロジックを共通のJSファイルに配置できます。

+5

のようにボックスを確認してみてくださいすることはできません_ん - 'window.confirm'はあなたが複製することはできませんブロッキング呼び出しであり、どのような形式の要素でも可能です。より良い選択肢を作るには、次のコードにコールバックを使用するために 'confirm'へのすべての呼び出しを更新する必要があります。 –

+0

[sweetalert](http://t4t5.github.io/sweetalert/)、私はこのライブラリがあなたのニーズを満たすと思う。 –

+1

@AdamAzadこれはモーダルではない。私はOPが何とか彼の 'window.confirm'コールを何とか置き換える必要があることを意味します。 –

答えて

3

confirmをカスタマイズする際の最大の問題は、ネイティブconfirmがブロックされていることです。だからあなたはただ書くことができます:

if(confirm("Continue?")) { 
    doStuff(); 
} 

しかし、あなた自身のコードはそれを行うことはできません。代わりに、ある種のコールバックを作成する必要があります。例は次のようになります。

myConfirm("Continue?",function() { 
    doStuff(); 
},function() { 
    cancelStuff(); 
}); 

あなたはこれを実装する方法を正確にあなた次第です - 私は実際に私は、フォームの呼び出しを行う私のプロジェクト、上のこののより柔軟なバージョンがあります:

Dialog("Title", "Contents", [array of buttons]); 
// [array of buttons] being an array of objects like: 
{ 
    "text": "Button text", 
    "action": function() {doSomething();}, 
    "optional_extras": "more stuff" 
} 

あなた自身のものを書くことについてのクールなことは、プロジェクトが成長するにつれてあなたのニーズに合わせて自由に拡張することができるということです。

関連する問題