2013-02-28 3 views
1

이 코드로 동적 행을 만들지 만 입력 할 때 텍스트 상자의 값이 업데이트되지 않습니다. 그건 내가 텍스트 상자에 텍스트를 볼 수 있지만 내가 값을 가져 오거나/검사 할 때 그것은 비어 있습니다.동적으로 생성 된 텍스트 상자의 값이 업데이트되지 않습니다.

나는 이것에 대한 탐구를 시도했지만 무슨 일이 일어 났는지 이해할 수는 없었습니다. 단서가 있습니까?

$('#add_ans').click(function(){ 
var rowCount = $('table tbody tr').length + 1; 
var rowString = '<tr>\ 
        <td><div class="span_5"><span class="badge badge-success">'+rowCount+'</span></div></td>\ 
        <td><div class="span3"><input type="text" class="input-large" value="" /></div></td>\ 
        <td><div class="span2 pull-right"><b>0</b></div></td>\ 
        <td><div class="span2"><button class="btn btn-success" id="vote'+rowCount+'"><b>Vote!</b> <i class="icon-thumbs-up"></i></button></div></td>\ 
        <td><div class="span2"><button class="btn btn-info" disabled><b>Reviews</b> <i class="icon-ok-circle"></i></button></div></td>\ 
       </tr>' 
$('tbody').append(rowString); 
$('tbody').on("click","#vote"+rowCount,voteOption); 

});

이벤트 핸들러는

function voteOption(){    
    var rowCount = $('tr').index($(this).closest('tr')); 
    alert(rowCount); 
    var ans = $('tr:eq('+rowCount+') .input-large').attr('value'); 
    alert(ans); 

}

답변

2

당신은 당신의 HTML에서 value 속성을 설정하지 않는, 그래서는 비어있게됩니다. 그냥 attr('value') 대신 val()를 사용

var ans = $('tr:eq('+rowCount+') .input-large').val(); 

또는, 당신은 당신이 발생하고있는 HTML에서 value 속성을 설정할 수 있습니다, 당신은 지금 접근법을 사용하여 검색 할 수 있습니다.

는 여기가 제대로 작동으로 jsFiddle있어 : http://jsfiddle.net/Rjrpy/

관련 문제