我正在使用jquery即兴对话框开发基于Web的应用程序。我正在使用此代码:
var statesdemo = {
state0 : {
title : 'here',
html : '<label>Name <input type="text" id="fname" name="fname" value="1"></label><br />',
/* + '<label><input type="text" name="lname" onclick="iconPrompt()" value="Change Image"></label><br />', */
buttons : {
ChangeImage : -1,
Delete : -2,
Save : false,
cancel : true
},
focus : 0,
submit : function(e, v, m, f) {
console.log(f);
if (v == -2) {
$('.1' ).remove();
$.prompt.close();
}
if (!v) {
$('#pos')
.append(
$('<div id="image" class="new" onclick=\"openprompt()"><label>"'
+ document
.getElementById('fname').value
+ '"</label><br /></div>'));
$.prompt.close();
} else if (v) {
$.prompt.close();
}
if (v == -1) {
$.prompt.goToState('changeImage');
}
return false;
}
},
changeImage : {
title : "Choose Image",
html : '<div class="imageContainer">'
+ '<div style="top: 0; left: 0; width: 100px; height: 50px"></div>'
+ '<div style="top: 0; left: 0; width: 100px; height: 50px"></div>'
+ '<div style="top: 0px; left: 0; width: 100px; height: 50px"></div>'
+ '<div style="top: 0px; left: 0px; width: 100px; height: 50px"></div></div>',
buttons : {
Done : 1
},
focus : 2,
submit : function(e, v, m, f) {
/* console.log(f);
e.preventDefault();
if (v == 1)
{
$.prompt.goToState('state0');}
return false; */
}
},
};
它运行正常,直到我在第一个状态下按下ChangeImage按钮。第二个状态在一秒钟内闪烁。我做错了什么,请帮忙。我被困了几个小时。
答案 0 :(得分:1)
你可能忘记了返回虚假;在if(v){..}内 实施例:
state0: {
title: 'this is the title',
html: '<p>this is the html',
submit: function(e,v,m,f) {
if (v) {
//validation here
return false;
}
}
},
state1: {
......
}
答案 1 :(得分:0)
很抱歉重新确认此查询,但可能缺少的内容(我遇到同样的问题,因为我从他们的示例中复制并测试过)是下一个else
之前的if
语句
让我们说你希望它匹配第一个IF
并且代码成功(这就是它闪烁的原因&#39;当执行跳转到下一行它找到另一个时如果要进行评估。但条件不正确,如果else
已经得到了它,那就去了吗?
示例:
输入为2
if(input == 2){...} //matched
if(!input){...}
else{...} //matched again because previous `if` didn't match