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);

}

4

2 に答える 2

2

HTML で属性を設定していないvalueため、空のままになります。val()の代わりに使用してattr('value')ください:

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

または、生成している HTML に属性を設定し、value現在のアプローチを使用して取得することもできます。

これが正しく動作するjsFiddleです:http://jsfiddle.net/Rjrpy/

于 2013-02-28T18:25:50.607 に答える
2

の代わりに.val()を使用してください.attr('value')

于 2013-02-28T18:26:13.460 に答える