2016-10-04 27 views
-1

我使用FullCalendar并触发日期提示。所以如果我在9月30日点击,我会得到两个提示框。使用UIKIT模态获取变量(而不是提示)

我目前使用下面的代码收到我的JavaScript两个变量:

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

我试图用UIKIT modal component建立一个单一的模式与领域得到变量(而不是两个单独的提示弹出窗口)。

我可以显示模式并禁用提示,但fullcalender函数会继续运行。它不能找到了var标题和抛出了错误:

未捕获的ReferenceError:标题没有定义

,直到提供一个可变的提示暂停代码的处理。我的模态没有。

什么是使用模态来替换提示的正确方法。哪些代码最适合用来暂停JavaScript的运行,直到按下保存按钮并将变量添加到字段中?

下面是所使用的代码的详细信息:

我更换了上面的JS代码:

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

,并具有以下模式:

<!-- 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> 

感谢

回答

0

您需要创建promise为基础的方法,在那里你创建一个承诺,并解决它当用户点击save或拒绝当用户取消或关闭对话框。

看到这个:https://www.promisejs.org/

0

我的猜测是,你在一个函数,然后结束创建这些增值经销商,所以存储变量被释放。

在脚本的顶部,创建两个变量。

var title; 
    var project; 

当你的代码需要填充这些增值经销商,然后使用代码:

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

后来,当你的代码需要使用他们,他们会与你的愿望值进行初始化,只要因为你在那之前不使用它们。

没有更多的代码,并且看到它们被创建和使用的位置,很难说明为什么title在您尝试使用它们时未定义。它可能是作用域,或者在你填充它们的时候,日历不会像创建时传递闭包一样创建。

0

我解决这个很简单。

我只是在保存按钮被点击时才会触发的函数中包含剩余的javascript。

 $("#modal_save").on("click", function(){ ... all the code here ... }); 
相关问题