0

最初にデータベースの内容をリストビューとして表示するメソッドを作成しました。リストビューをクリックすると、学生の名前を入力するポップアップが表示されます。

学生の名前を入力すると、名前が存在するかどうかをデータベースでチェックします。名前が存在する場合は、名前が既に存在することを警告し、そうでない場合は日付をデータベースに書き込みます

$('#storedList').children('li').off('click').on('click', function () {
                 name = $.trim($(this).text());

         $("#existing_Name").popup('open');

         $('#exisitng_Namebutton').on('click', function(e) {


            var existname = document.getElementById('existingname');
            createname = $.trim(existname.value);

         //});

            if(createname.length!=0){

            db.transaction(function(tx){
            tx.executeSql('SELECT * FROM SCHOOL WHERE  Std_name="' + name + '" and CreatedDate="'+createname+'" ', [] ,CheckingAllignSuccess,errorCB);
            }); 

            }
            else{
            alert("please enter the value");
            }
         });

        });




       }

    }


function Insertdbexisiting(tx) {
    tx.executeSql('INSERT INTO SCHOOL (Std_name, CreatedDate) VALUES ("' + name + '","' + createname + '")');
}   


function successCBexisting(){

Displaylist(); 

   //window.open("list.html#Homelist");
   $.mobile.changePage( "#Homelist", { 
            transition: "slide",
            reverse: false,
        });

} 


var CheckingAllignSuccess = function(tx, resultallign){

if(resultallign.rows.length == 0){
    db.transaction(Insertdbexisiting, errorCB, successCBexisting);
    }else
    alert("Student name already exists");
}

これは、最初の値を追加するときにうまく機能します。

2 番目の値が存在しない場合でも 2 番目の値を追加すると、「学生名は既に存在します」という警告メッセージが表示されます。

私がデバッグしたとき、db.transaction(function(tx){ tx.executeSql('SELECT * FROM SCHOOL WHERE Std_name="' + name + '" and CreatedDate="'+createname+'" ', [] ,CheckingAllignSuccess,errorCB); });2回目にデータを挿入している場合、2回呼び出していることに気付きました。3回目にデータを挿入すると、3回呼び出されます

私がしている間違いは何ですか?. どうすれば防ぐことができますか?

ありがとう:)

4

1 に答える 1

0

に追加off('click')して修正し$('#exisitng_Namebutton').on('click', function(e) {ましたが$('#exisitng_Namebutton').off('click').on('click', function(e) {、正常に動作しています。

このアイデアは、SO での彼の回答の 1 つで Gajotres によって提案されました。

于 2013-06-02T07:06:05.997 に答える