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は真ではないため、値を割り当てることはありません。

を使用するか==、文字列と比較するか、数値に変換します。

2 番目: に値を引数として渡す$ため、その String の代わりに jQuery オブジェクトが返されます。これは意味がないので、しないでください。

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

あなたconditionsが間違っているからです。

見る 、

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

それreturnsstring

それで

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

それは間違って1"1"ますundefined

あなたのif条件は

   if(priority === "1"){

また、条件を変更する必要がある場合も残ります。

于 2013-09-15T08:34:23.763 に答える