2009-06-16 3 views
0

내 응용 프로그램에서 JQuery, CakePHP 및 Mysql을 사용하고 있습니다. 지시 사항이 입력란에 표시 패널에 표시되는 텍스트 상자와 같은 코드가 있습니다.JQuery의 변경 및 키 업 이벤트 핸들러

$(".TextFieldSettings #instructions").keyup(function(){ 
    instr=$(".TextFieldSettings #instructions").val(); 
    $("#displayPanel .fieldInstructions"+counter).html(instr).show(); 
});//Text field instructions keyup 

이 코드는 잘 작동합니다.

편집 : 텍스트 상자 지침의 값을 변경하면 키패드 값이 디스플레이 패널에 표시되어야합니다. 데이터베이스에 삽입하려면 instr에서 최종 변경 값이 필요합니다. 어떻게해야합니까?

+0

당신이 무엇을 요구하고 있는지 명확히 할 수 있습니까? 나는 힘든 시간을 보내고있다. –

+0

나는 Paolo에 동의한다. 데이터를 데이터베이스에 삽입하는 방법을 묻고 있습니까? –

답변

0

당신은 당신의 작업을 지연시킬 수 있습니다 : 함수가 실행될 때

$(".TextFieldSettings #instructions").keyup(function(){ 
    setTimeout(function() { 
    var instr=$(".TextFieldSettings #instructions").val(); 
    $("#displayPanel .fieldInstructions"+counter).html(instr).show(); 
    }, 1); 
});//Text field instructions keyup 

그 방법, 입력 값은 키 누르기와 업데이트되었습니다.

0

지침 내용의 길이/키 입력 빈도에 따라 데이터베이스를 업데이트 할 때마다 데이터베이스를 업데이트하는 것이 약간 과잉이라고 생각합니다. 어쩌면 5 초마다 데이터베이스를 업데이트할까요? 각각의 키 누르기는 setTimeout 함수를 트리거/재설정합니다.

또한 전화를 바꿔서 $ (this)로 텍스트 값을 가져올 수 있습니다.

$(".TextFieldSettings #instructions").keyup(function(){ 
    var instr = $(this).val(); 
    $("#displayPanel .fieldInstructions"+counter).html(instr).show(); 

    // Update database 
    $.ajax({ 
       method: 'POST', 
       url: 'path/to/a/script_file/executing_the_sql.ext', 
       data: { 'str': escape(instr.replace(/\n/g,'<br />')) }, 
       success: function(){}, 
       error: function(e){ alert(e.responseText); } 
    }); 

});//Text field instructions keyup