我尝试将Zebra_Dialog模式窗口用作用户输入的小表单。但是,在检索文本框值时,每次都会返回一个空白字符串。这就是我用来创建弹出窗口的内容:
new $.Zebra_Dialog("<table><tr><td>Request ID:</td><td><input id='txtRequest' type='text' /></td></tr><tr><td>Request Title:</td><td><input id='txtTile' type='text' /></td></tr></table>", {
'type': 'information',
'title': 'Save Estimate',
'buttons':
[
{
caption: 'Submit', callback: function () {
UploadToDB();
return false;
}
},
{
caption: 'Cancel', callback: function () {
}
}
]
});
当UploadToDB
方法触发时,它会使用此代码从动态创建的文本框中获取值:
function UploadToDB() {
var param = {
requestID: document.getElementById("txtRequest").value,
requestTitle: document.getElementById("txtTitle").value
};
//Other code here.....
}
我还尝试了不同的变体,例如requestID: $("#txtRequest").val(),
。
每次虽然我得到一个空白的字符串。任何帮助表示赞赏。
答案 0 :(得分:0)
我非常喜欢Zebra_Dialog,所以我编写了这些辅助函数。 zprompt()就是你想要的那个,让Zebra处理提示变得有点棘手,我无法让zprompt或zconfirm像同步Javascript函数一样提示或确认这是为什么他们有回调。 OP有同样的问题,即文本输入在闭包时消失,jquery无法获取其值,这就是我使用下面的老式onchange处理程序的原因。
function zalert(msg,title,type) {
$.Zebra_Dialog(msg,"title":title||'Alert',"type":type||'error',"position":['center','top+50']});
}
function zconfirm(msg,title,okproc) {
$.Zebra_Dialog(msg,{
'type': 'question',
'title': title||'Confirm?',
'position': ['center','top+50'],
'buttons': ['OK','Cancel'],
'onClose': function(caption) {
if (caption=="OK")
okproc();
}
});
}
var zprompt_value='';
function zprompt(msg,deftxt,title,okproc) {
var len=deftxt.length;
var wd=len*10;
if (wd<220) wd=300;
var size=len || 24;
$.Zebra_Dialog(msg,{
'title': title||'Confirm?',
'message': msg+"<br><input type=text onchange='zprompt_value=this.value' value='"+deftxt+"' size="+size+">",
'width': wd,
'position': ['center','top+50'],
'buttons': ['OK','Cancel'],
'onClose': function(caption) {
if (caption=="OK")
okproc(zprompt_value);
}
});
以下是一些如何调用它们的示例:
zalert("Big mistake!","Report","error");
zconfirm("Are you sure you want to format the drive?","Confirm?",function(){
format_drive(); // Ack!
});
zprompt("Enter a funny nickname:","(nickname)","Nickname",function(n){
set_nickname(n);
});
希望对某人有所帮助,大部分时间花了大半个时间来解决这个问题!如果有更好的方法,请告诉我。
SSF