2012-03-15 3 views
0

PHP를 사용하여 동적으로 생성 된 테이블이 있습니다. 테이블에는 행을 기반으로 데이터베이스를 업데이트하는 데 사용되는 몇 가지 텍스트 필드가 있습니다. 이 질문은에서 참조 할 수 있습니다 : Complete question, 대답을 기반으로 입력을 누르면 텍스트 필드 값을 가져 오는 javascript를 사용하고 있습니다. 사용되는 자바 스크립트는 다음과 같습니다 동적으로 생성 된 텍스트 필드 값 얻기

$("#details input").live('keypress', function (e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 13) { 
     e.preventDefault(); 
     var ourId = $(this).id; 
     var updatedText = $(this).val; 

     alert(updatedText); 
    } 
}); 

그러나 어떤 이유로 $(this)가 예상 결과를 반환하지 않습니다.

감사합니다. 감사드립니다.

+0

'예상 결과를 반환하지 않음'이란 무엇을 의미합니까? 'alert'가 잘못된 값을 출력하고 있습니까? –

+0

죄송합니다. 텍스트 필드의 ID를 가져올 수 없습니다. 이제 val()을 사용하는 값이 작동합니다! – Namit

답변

0

거기에 개념을 혼합하고 있습니다. $(this).id --> this.id OR $(this).attr('id')$(this).val --> $(this).val(). 더 이상 사용되지 않는 live() 대신 위임에 on()을 사용하십시오.

$("#details").on('keypress', 'input', function(){ 
    // Bla 
}); 
+0

이전에 사용 했었지만 필드가 동적으로 생성되어서 작동하지 않아서'live() '를 사용해야했습니다. – Namit

+0

내가 게시 한 것과 같은'on()'이벤트 위임 형식. 당신은 JQ API – elclanrs

+0

에서 읽을 수 있습니다. 여전히'on() '과 함께 작동하지 않습니다. – Namit

4

val은 메소드가 아니므로 속성이므로 함수처럼 사용해야합니다.

변경 $(this).val

$(this).val()에 그리고 입력 요소의 id 그냥 this.id를 사용하세요. id은 dom elemdnt의 속성입니다.

+0

값이 잘 작동하지만 ID가 정의되지 않았습니까? : – Namit

+0

'id'는'this.id' 만 사용합니다. – ShankarSangoli

관련 문제