延长提示()对象要确保这个问题更加清晰,是否有可能在Javascript
我想是因为我想在同以从用户那里获取两个变量来重新实现JavaScript中的提示对象时间。
如果可以扩展,重新实现或覆盖此对象,请告诉我如何。如果不是,你有更好的解决方案吗?
谢谢。
延长提示()对象要确保这个问题更加清晰,是否有可能在Javascript
我想是因为我想在同以从用户那里获取两个变量来重新实现JavaScript中的提示对象时间。
如果可以扩展,重新实现或覆盖此对象,请告诉我如何。如果不是,你有更好的解决方案吗?
谢谢。
你应该使用类似http://jqueryui.com/demos/dialog/#modal-form
您将需要分割你的JavaScript,你有你的对话
所以,如果你有
function getAndUseUserInfo() {
bla1();
bla2();
var x = prompt("Gimme something for bla 3","");
if (x) bla3(x); // this will not be executed until user closes prompt
}
你现在需要
function getUserInfo() {
bla1();
bla2();
var x = "";
$("#dialog-form").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"OK": function() { x = $("#someIdFromtheForm").val(); $(this).dialog("close");}
"CANCEL": function() { $(this).dialog("close");}
}
close: function() {
if (x) bla3(x);
}
});
}
或者如果你坚持重写内置函数,你可以d o像这样的东西(这是因为我没有使用html页面而出现错误):
var orgPrompt = window.prompt;
var varone, vartwo;
function saveVars(doc) {
varone = doc.getElementById("x").value;
vartwo = doc.getElementById("y").value
return [varone,vartwo];
}
window.prompt=function(one,two) {
var html = '<center><br><br>'+one+':<input type=text id=x><br>'+two+':<input type=text id=y><br><input type=button value=OK onclick=\'window.returnValue=window.dialogArguments.saveVars(document);window.close()\'/>';
var res = showModalDialog('javascript:"'+html+'"',window,"dialogWidth:100px;dialogHeight:100px");
}
x = prompt('first name','last name')
alert(x)
这是假设如何工作? 'window.prompt'与jQuer UI有什么关系?我认为重写'window.prompt'不是一个好主意。 – 2011-03-30 12:36:48
@Felix,请参阅更新 – mplungjan 2011-03-30 13:20:11
窗口提示太大,我可以修复它吗?如果我可以如何? – 2011-03-31 10:27:29
您可以让它们使用分隔符分隔两个不同的值。
var result = prompt('enter two values seperated by a comma').split(',');
alert('first value: ' + result[0]);
alert('second value: ' + result[1]);
谢谢,但这影响了可用性,因此我不喜欢这个 – 2011-03-31 11:02:48
你可以重新定义大多数事情在JavaScript中,其中包括窗口提示,预警和确认方法,但它可能会是一个更好的主意来定义的方法,并调用它代替的本地对象。例如,定义“提示器”,“警报器”或“确认器”方法。
我不明白你实际上可以给一个重新定义的例子提示 – 2011-03-31 10:24:16
不,创建您自己的对话框:) – 2011-03-30 12:35:31