我的变量todoHtmlLi未定义,真的无法理解为什么..我在将它分配给某个html之前就已经提前声明了。我使用console.log()来检查优先级值,它工作得很好..
$(document).on('click', '#addTodoBtn', function () {
var todoDialog = {
state0: {
html: dialogContent,
buttons: {
Cancel: -1,
Add: 0
},
focus: 1,
submit: function (e, v, m, f) {
e.preventDefault();
var todoHtmlLi;
var todoNameVal;
var todoNoteVal;
//Task Name
todoNameVal = $("#todoName").val();
todoNameVal.trim();
//Note
todoNoteVal = $("#todoNote").val();
todoNoteVal.trim();
//Priority
priority = $("#priority").val();
if ($(priority) === 1) {
todoHtmlLi = "<li style='background:red'><a href='#'>" + todoNameVal + "<input type='checkbox'></a></li>"
} else if ($(priority) === 2) {
todoHtmlLi = "<li style='background:green'><a href='#'>" + todoNameVal + "<input type='checkbox'></a></li>"
} else if ($(priority) === 3) {
todoHtmlLi = "<li style='background:blue'><a href='#'>" + todoNameVal + "<input type='checkbox'></a></li>"
}
if (v == 0) {
if (todoNameVal !== "") {
$("div#tab").find('#todoUl').prepend(todoHtmlLi);
$.prompt.close();
} else {
$("#todoName").focus();
}
} else {
$.prompt.close();
}
}
}
}
$.prompt(todoDialog);
});
if(v == 0){表示单击“是”按钮
答案 0 :(得分:1)
首先:您只需根据todoHtmlLi
(将是一个字符串)的调用的返回值与使用{{的数字进行比较,将值分配给val()
1}}(检查类型)。
由于===
不成立,因此您永远不会指定值。
使用"1" === 1
,与字符串比较或转换为数字。
第二次:您将值作为参数传递给==
,因此您将获得一个jQuery对象而不是该String。这没有任何意义,所以不要这样做。
$
答案 1 :(得分:0)
因为conditions
错误。
看,
priority = $("#priority").val();
returns
一个string
。
然后
if($(priority) === 1){
这是错误的,因为1
永远不等于"1"
,所以没有条件满足。它; s undefined
。
你的if条件应该是
if(priority === "1"){
如果需要改变条件,也要保持不变。