2013-05-31 8 views
0

데이터베이스의 내용을 listview로 먼저 표시하는 방법을 작성했으며 listview를 클릭하면 학생 이름을 입력하는 팝업이 표시됩니다. 이름은 내가 추가하는 동안데이터베이스에 삽입하는 동안 예기치 않은 동작이 발생했습니다.

$('#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"); 
} 

이 잘 작동 내가 데이터베이스에 날짜를 기록합니다 이름이 이미 다른 존재라고 알려줍니다있는 경우 내가, 이름이 존재하는지 여부를 데이터베이스에서 확인합니다 학생의 이름을 입력하면

최초의 값

두 번째 값이 없는데도 "학생 이름이 이미 있습니다"라는 경고 메시지가 나타납니다.

내가 디버깅 한 경우 db.transaction(function(tx){ tx.executeSql('SELECT * FROM SCHOOL WHERE Std_name="' + name + '" and CreatedDate="'+createname+'" ', [] ,CheckingAllignSuccess,errorCB); });은 두 번째 데이터를 삽입하는 경우 2 회 호출합니다. 세 번째로 데이터를 삽입하는 경우 3 번 호출합니다.

내가 뭘하고있는 실수입니까?. 나는 그것을 어떻게 막을 것인가?

감사합니다 :)

답변

0

난 내가 그냥 $('#exisitng_Namebutton').off('click').on('click', function(e) {을 가지고 있으며, 그것이 잘 작동했다 off('click')$('#exisitng_Namebutton').on('click', function(e) {에 추가하여 해결했습니다.

이 아이디어는 Gajotres가 SO에서 그의 답변 중 하나에서 제안했습니다.

관련 문제