2017-04-21 7 views
0

私はjsonとしてajaxレスポンスからテーブルデータを取得しています。
いくつかのjsonデータは表示されていませんが、他の目的のためにボタンをクリックしてください。どうすれば入手できますか?ボタンのクリックでajaxレスポンスを取得するには

function leaveTable() { 
    for (var i = 0; i < leaveList.length; i++) { 
     var tab = '<tr id="' + i + '"><td>' + (i + 1) + '</td><td class="appliedOn">' + leaveList[i].appliedOn + '</td><td class="levType" >' + leaveList[i].levType + '</td><td class="leaveOn" >' + leaveList[i].leaveOn + '</td><td class="duration">' + leaveList[i].duration + '</td><td class="status">' + leaveList[i].status + '</td><td class="approvedOn">' + leaveList[i].approvedOn + '</td><td class="approvedBy">' + leaveList[i].approvedBy + '</td><td><i class="btn dltLev fa fa-times" onclick="cancelLeave(this)" data-dismiss="modal" value="Cancelled"></i></td><tr>'; 

     $('#levListTable').append(tab) 
    } 
} 

AJAX応答から私はleaveTypeIdをしたいとsendCancelReq()関数に渡します。
完全コード:https://jsfiddle.net/tytzuckz/18/

答えて

1

あなたが望むものを正確に知ることは複雑です。最初

、私は変化するであろう、あなたのhtmlコードvar tab = ...でJavaScriptのイベントを発生させない次のとおりです。私はあなたを助け願っています。私は、新しいDOM要素の作成後にイベントを追加すると、より明瞭で読みやすいと思います。次に、あなたがより明確に自分の必要な情報を送信することができます

var tab = $('<tr id="' + i + '">' + 
    '<td>' + (i + 1) + '</td>' + 
    '<td class="appliedOn">' + leaveList[i].appliedOn + '</td>' + 
    '<td class="levType" >' + leaveList[i].levType + '</td>' + 
    '<td class="leaveOn" >' + leaveList[i].leaveOn + '</td>' + 
    '<td class="duration">' + leaveList[i].duration + '</td>' + 
    '<td class="status">' + leaveList[i].status + '</td>' + 
    '<td class="approvedOn">' + leaveList[i].approvedOn + '</td>' + 
    '<td class="approvedBy">' + leaveList[i].approvedBy + '</td>' + 
    '<td><i class="btn dltLev fa fa-times" data-dismiss="modal" value="Cancelled"></i></td>' + 
    '<tr>'); 
$(tab).find('.btn.dltLev').click(function() { cancelLeave(this); }); 

、例えば:例えば

代わりに、最後のコード

$(tab).find('.btn.dltLev').click(function() { cancelLeave(this); }); 

のあなたは

$(tab).find('.btn.dltLev').click(function() { cancelLeave(this, leaveList[i].leaveTypeId); }); 
を書くことができます

を入力し、cancelLeaveの方法を

に変更してください
function cancelLeave(elem, leaveTypeId) { 
    var id = $(elem).closest('tr').attr('id') 
    alert(id) 
    $("#cancelLeave").modal("show"); 
    $('.sendCancelReq').val(id); 
    sendCancelReq(leaveTypeId); 

}

0

ゴット・ソリューション
この確認してください:https://jsfiddle.net/tytzuckz/19/

function cancelLeave(elem) { 
    var levTypeId = $(elem).attr('id') 
    var id = $(elem).closest('tr').attr('id') 
    $('.currentLevTypeId').val(levTypeId); 
    $("#cancelLeave").modal("show"); 
    $('.sendCancelReq').val(id); 

    } 
    function sendCancelReq() { 

    var a= $('.currentLevTypeId').val(); 
    alert(a) 
} 
関連する問題