使用UIKIT Modal获取变量(而不是提示)

时间:2016-10-04 16:59:19

标签: javascript jquery modal-dialog uikit fullcalendar

我使用FullCalendar并在点击日期时触发提示。因此,如果我在9月30日点击,我会收到两个提示框。

我目前在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>

由于

3 个答案:

答案 0 :(得分:0)

您需要创建基于promise的方法,在其中创建承诺,并在用户点击save时解决,或在用户取消或关闭对话框时拒绝。

请参阅:https://www.promisejs.org/

答案 1 :(得分:0)

我的猜测是你在函数中创建这些变量然后结束,所以存储的变量被释放。

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

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

当您的代码需要填充这些变量时,请使用代码:

title

稍后,当您的代码需要使用它们时,只要您在此之前不使用它们,它们就会使用您想要的值进行初始化。

如果没有更多代码,并且要查看它们的创建和使用位置,很难说在您尝试使用它们时为什么{{1}}未定义。它可能是范围或者在您填充它们时,不会像在初始时传入闭包的情况那样创建日历。

答案 2 :(得分:0)

毕竟我解决了这个问题。

我只是将剩余的javascript包装在一个只在单击保存按钮时触发的函数中。

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