使用modal重新实现Javascript prompt()对话框

时间:2013-08-02 19:32:46

标签: javascript jquery

我的任务是使用一个使用花哨的Javascript激活模式对话框的自定义函数替换Javascript prompt调用。

该函数被调用一次,并期望返回一个字符串,来自用户的输入。我无法控制函数的调用方式(它是一个外部库。)

制作模态并获得输入很容易。在用户单击“提交/确定”按钮后,如何将输入返回给自定义提示函数的调用者?

jQuery很好。

2 个答案:

答案 0 :(得分:3)

prompt()的浏览器实现是以无法使用页面上运行的用户级Javascript进行复制的方式实现的。您必须使用回调函数。如果可能的话,你应该使用现成的解决方案。

我所说的是代码的用户不能拥有这个:

var result = customPrompt(...);

相反,他们必须具备以下内容:

customPrompt({
    ...

    ok: function() {
        //when user clicked ok
    },

    cancel: function() {
        //when user clicked cancel
    }

});
//Code continues to run here and doesn't wait for the user to click ok or cancel

答案 1 :(得分:0)

这是你可以将用户的输入与模态启动器相同的功能,以便你可以处理它。

<input type="text" id="user-input" />
<a href="#" onClick="handlePrompt(false)">OK</a>

function handlePrompt(launchModal){
     if(launchModal){
         // Code to Launch Modal
     }else{
         var userInput = $("#user-input").val();
         // Do what you want with the input.
     }
}