1

我的变量 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){ 表示单击“是”按钮

4

2 回答 2

1

第一:您仅todoHtmlLi根据将调用的返回值val()(将是字符串)与使用的数字===(检查类型)进行比较来分配值。

由于"1" === 1不正确,因此您永远不会分配值。

使用==、与字符串比较或转换为数字。

第二:你将值作为参数传递给$,所以你得到一个 jQuery 对象而不是那个字符串。这没有任何意义,所以不要这样做。

if (priority == 1){
if (priority === "1"){
if (parseInt(priority,10) === 1){
于 2013-09-15T08:34:40.107 回答
0

因为你conditions错了。

看 ,

  priority = $("#priority").val();

returns一个string

然后

  if($(priority) === 1){

那是错误的,既然1 永远不等于"1",所以没有条件满足。它;s undefined

你的 if 条件应该是

   if(priority === "1"){

如果条件需要改变,也可以保留。

于 2013-09-15T08:34:23.763 回答