我的任务是使用一个使用花哨的Javascript激活模式对话框的自定义函数替换Javascript prompt
调用。
该函数被调用一次,并期望返回一个字符串,来自用户的输入。我无法控制函数的调用方式(它是一个外部库。)
制作模态并获得输入很容易。在用户单击“提交/确定”按钮后,如何将输入返回给自定义提示函数的调用者?
jQuery很好。
答案 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.
}
}