2016-10-04 8 views
-1

私はFullCalendarを使用しており、日付をクリックするとプロンプトが表示されます。 9月30日をクリックすると、2つのプロンプトボックスが表示されます。UIKITモーダルを使用して変数を取得する(プロンプトではなく)

私は現在、次のコードを使用して、私のjavascriptの2つの変数を受け取る:私は、変数(というよりも二つの別々のプロンプトを取得するためのフィールドを持つ単一のモーダルを作成するためにUIKIT modal componentを使用しようとしている

 var title = prompt('Job Title:'); 
     var project = prompt('Project Title:'); 

をポップアップ)。

私はモーダルを表示してプロンプトを無効にできますが、フルカレンダー機能は引き続き実行されます。これは、VARのタイトルを検索し、エラーをスローすることはできません。

キャッチされないにReferenceError:タイトルは

が定義されていない変数が提供されるまでプロンプトはコードの処理を一時停止します。私のモーダルはしません。

プロンプトを置き換えるためにモーダルを使用する正しい方法は何ですか。保存ボタンを押して変数をフィールドに追加するまで、JavaScriptの実行を一時停止するのにどのコードを使用するのが最適でしょうか?以下は

使用されるコードの詳細、次のとおりです。

私は上記のJSコードを置き換える:ありがとう

<!-- This is the modal --> 
<div id="workcal-add-modal" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <a class="uk-modal-close uk-close"></a> 

     <form class="uk-form"> 

      <fieldset data-uk-margin> 
       <input type="text" placeholder="project Name" id="wc_add_project_title"> 
       <select> 
        <option>Project 1</option> 
        <option>Project 2</option> 
       </select> 
       <button class="uk-button">Save</button> 
      </fieldset> 

     </form> 

    </div> 
</div> 

$.UIkit.modal('#workcal-add-modal').show(); 

と、次のモーダルを持っています

答えて

0

を作成する必要がありますプロビジョニングを作成し、ユーザがsaveをクリックしたときに解決するか、ユーザがダイアログをキャンセルまたは閉じるときにそれを解決する、ベースのアプローチ。

これを参照してください:https://www.promisejs.org/

0

私の推測では、あなたが終了する機能でこれらのVARSを作成している、そしてその格納された変数の割り当てが解除されているということです。

スクリプトの先頭に2つの変数を作成します。そして、あなたのコードは、これらのVARSを移入する必要が

var title; 
    var project; 

、コードを使用します。

title = prompt('Job Title:'); 
    project = prompt('Project Title:'); 

その後、あなたのコードがそれらを使用する必要があるとき、彼らは限り、あなたが望むの値で初期化されますその前にそれらを使用しないでください。

コードがなくて、どこに作成されて使用されているのかを確認するには、使用しようとしているときにtitleがなぜ未定義であるのかを知るのは難しいです。それはスコープであるかもしれません、またはあなたがそれらを設定する時に、あなたがinit時にクロージャを渡す場合のように、カレンダーは作成されません。

0

私はこれを結局単純に解決しました。

私はちょうど保存ボタンがクリックされたときにトリガする関数内に残りのjavascriptをラップしました。

 $("#modal_save").on("click", function(){ ... all the code here ... }); 
関連する問題