2017-04-24 122 views
-2

我剛創建了一個帶有4個按鈕的表格edit,delete,updateCancel。所有操作都正常,但僅取消不起作用。
操作:
edit - 當編輯按鈕被點擊的輸入框將ed添加到滾動名列(編輯按鈕將被隱藏並將更新按鈕將被顯示)
updatedelete也工作正常。
但是當我點擊取消輸入框應隱藏在我的表。[![在這裏輸入圖像描述] [2]] [2] [![在這裏輸入圖片] [1]] [1] 它不工作。 ?
這是怎麼回事任何suggession請使用jquery在表格中進行內聯編輯

var roleList=[{ 
"Id": "0", 
"name":"designer" 
}]; 
$(document).ready(function() { 
    empRoles() 
}); 

function empRoles() { 

       for (var i = 0; i < roleList.length; i++) { 
        var table = '<tr id="' + roleList[i].Id + '"><td>' + (i + 1) + '</td><td class="roleName" id="name' + i + '">' + roleList[i].name + '</td><td><button class="btn edit btn-info btn-sm" id="edit' + i + '"><i class="fa fa-pencil"></i>Edit</button><button class="btn update btn-success btn-sm" id="update' + i + '"><i class="fa fa-floppy-o"></i>Update</button><button class="btn dlt btn-danger btn-sm" onclick="deleteRow(this)" data-dismiss="modal" id="dlt' + i + '"><i class="fa fa-trash-o"></i>Delete</button><button class="btn editCancel btn-danger btn-sm" id="editCancel' + i + '" ><i class="fa fa-times"></i>Cancel</button></td><tr>'; 
        $('#content').append(table); 
        editUpdate(); 


} 
function editUpdate() { 
    //$('.rowInput').hide(); 
    $('.update').hide(); 
    $('.editCancel').hide(); 
} 
$(document).on('click', ".edit", function (e) { 
    var editId = $(this).attr('id'); 
    e.stopPropagation(); 

    $("#" + editId).hide(); 
    var number = editId.replace("edit", ""); 
    $("#dlt" + number).hide(); 
    $("#update" + number).show(); 
    $("#editCancel" + number).show(); 

    var currentTD = $(this).parents('tr').attr('id'); 

    var rowId = $("#" + currentTD +" "+"td.roleName"); 
    var existingRoleName = rowId.text(); 
    var updateRoleName = rowId.html('<input type="text" class="inputVal" value="'+ existingRoleName + '" >'); 

}); 
$(document).on('click', ".update", function (e) { 
    var updatedBy = $("#userName").text(); 

    var updateId = $(this).attr('id'); 
    e.stopPropagation(); 
    $("#" + updateId).hide(); 
    var number = updateId.replace("update", ""); 
    $("#editCancel" + number).hide(); 
    $("#dlt" + number).show(); 
    $("#edit" + number).show(); 

    var currentTD = $(this).parents('tr').attr('id'); 
    var a = $("#" + currentTD + " " + "td.roleName"); 
    var rowVal = $("#" + currentTD +" "+"td.roleName input").val(); 

    a.text(rowVal); 
    var id = $(this).closest('tr').attr('id'); 
    var name = $(this).parents('tr').find(':nth-child(2)').html(); 
    var Roles = { name: name, role_id: id, updated_by:updatedBy }; 
    var ajxObj = { oRoles: Roles }; 
    $.ajax({ 
     type: 'POST', 
     url: "/Admin/RoleUpdate", 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify(ajxObj), 
     dataType: 'json', 
     success: function (response) { 
      $(".roleCreated").html("Role Updated successfully!"); 
      $('.roleCreated').show(); 
      setTimeout(function() { 
       $('.roleCreated').hide(); 
      }, 1500); 
      // empRoles() 
     }, 
     failure: function (response) { 
      alert(response.responseText); 
     } 
    }); 
}); 
$(document).on('click', ".editCancel", function() {debugger 
    var cancelId = $(this).attr('id'); 
    $("#" + cancelId).hide(); 
    var number = cancelId.replace("editCancel", ""); 
    $("#update" + number).hide(); 
    $("#edit" + number).show(); 
    $("#dlt" + number).show(); 
    var currentTD = $(this).parents('tr').attr('id'); 
    var rowId = $("#" + currentTD + " " + ".inputVal"); 
    var existingRoleName = rowId.val(); 
    var updateRoleName = rowId.html('<td>' + existingRoleName + '</td>'); 

}); 

全部代碼 - https://jsfiddle.net/xhetgowp/1/

+0

夥計,你的小提琴無按鍵.....它很難理解你的問題 – DelightedD0D

+0

由於小提琴沒有輸出,無法理解和檢查。 – Ananya

+0

看到我已經在當地 – krish

回答

1

試試這個代碼

var roleList=[{ 
 
"Id": "0", 
 
"name":"designer" 
 
}]; 
 
$(document).ready(function() { 
 
    empRoles() 
 
}); 
 

 
function empRoles() { 
 
    
 
       for (var i = 0; i < roleList.length; i++) { 
 
        var table = '<tr id="' + roleList[i].Id + '"><td>' + (i + 1) + '</td><td class="roleName" id="name' + i + '">' + roleList[i].name + '</td><td><button class="btn edit btn-info btn-sm" id="edit' + i + '"><i class="fa fa-pencil"></i>Edit</button><button class="btn update btn-success btn-sm" id="update' + i + '"><i class="fa fa-floppy-o"></i>Update</button><button class="btn dlt btn-danger btn-sm" onclick="deleteRow(this)" data-dismiss="modal" id="dlt' + i + '"><i class="fa fa-trash-o"></i>Delete</button><button class="btn editCancel btn-danger btn-sm" id="editCancel' + i + '" ><i class="fa fa-times"></i>Cancel</button></td><tr>'; 
 
        $('#content').append(table); 
 
        editUpdate(); 
 
       
 

 
} 
 
function editUpdate() { 
 
    //$('.rowInput').hide(); 
 
    $('.update').hide(); 
 
    $('.editCancel').hide(); 
 
} 
 
}; 
 
$(document).on('click', ".edit", function (e) { 
 
    var editId = $(this).attr('id'); 
 
    e.stopPropagation(); 
 

 
    $("#" + editId).hide(); 
 
    var number = editId.replace("edit", ""); 
 
    $("#dlt" + number).hide(); 
 
    $("#update" + number).show(); 
 
    $("#editCancel" + number).show(); 
 

 
    var currentTD = $(this).parents('tr').attr('id'); 
 

 
    var rowId = $("#" + currentTD +" "+"td.roleName"); 
 
    var existingRoleName = rowId.text(); 
 
    var updateRoleName = rowId.html('<input type="text" class="inputVal" value="'+ existingRoleName + '" >'); 
 
    debugger; 
 
    rowId.attr("data-existing",existingRoleName); 
 
    
 
}); 
 
$(document).on('click', ".update", function (e) { 
 
    var updatedBy = $("#userName").text(); 
 

 
    var updateId = $(this).attr('id'); 
 
    e.stopPropagation(); 
 
    $("#" + updateId).hide(); 
 
    var number = updateId.replace("update", ""); 
 
    $("#editCancel" + number).hide(); 
 
    $("#dlt" + number).show(); 
 
    $("#edit" + number).show(); 
 

 
    var currentTD = $(this).parents('tr').attr('id'); 
 
    var a = $("#" + currentTD + " " + "td.roleName"); 
 
    var rowVal = $("#" + currentTD +" "+"td.roleName input").val(); 
 
    
 
    a.text(rowVal); 
 
    var id = $(this).closest('tr').attr('id'); 
 
    var name = $(this).parents('tr').find(':nth-child(2)').html(); 
 
    var Roles = { name: name, role_id: id, updated_by:updatedBy }; 
 
    var ajxObj = { oRoles: Roles }; 
 
    $.ajax({ 
 
     type: 'POST', 
 
     url: "/Admin/RoleUpdate", 
 
     contentType: "application/json; charset=utf-8", 
 
     data: JSON.stringify(ajxObj), 
 
     dataType: 'json', 
 
     success: function (response) { 
 
      $(".roleCreated").html("Role Updated successfully!"); 
 
      $('.roleCreated').show(); 
 
      setTimeout(function() { 
 
       $('.roleCreated').hide(); 
 
      }, 1500); 
 
      // empRoles() 
 
     }, 
 
     failure: function (response) { 
 
      alert(response.responseText); 
 
     } 
 
    }); 
 
}); 
 

 
$(document).on('click', ".editCancel", function() { 
 
    var cancelId = $(this).attr('id'); 
 
    $("#" + cancelId).hide(); 
 
    var number = cancelId.replace("editCancel", ""); 
 
    $("#update" + number).hide(); 
 
    $("#edit" + number).show(); 
 
    $("#dlt" + number).show(); 
 
    var currentTD = $(this).parents('tr').attr('id'); 
 
    var rowId = $("#" + currentTD + " " + ".inputVal"); 
 
    var existingRoleName = rowId.val(); 
 
    console.log("existingRoleName"+existingRoleName); 
 
    var updateRoleName = rowId.html('<td>' + existingRoleName + '</td>'); 
 
    console.log("updateRoleName"+updateRoleName); 
 
    debugger; 
 
    var a = $("#" + currentTD + " " + "td.roleName"); 
 
    var rowVal = a.attr('data-existing'); 
 
    a.text(rowVal); 
 
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<table class="table table-hover table-bordered" id="mydata"> 
 
         <thead class="colorBlue"> 
 
          <tr> 
 
           <th>S.NO</th> 
 
           <th>ROLE NAME</th> 
 
           <th>ACTION</th> 
 
          </tr> 
 
         </thead> 
 
         <tbody id="content"></tbody> 
 
        </table>

+0

你能否檢查一下你的答案..我只是在'cancel action'前改變那個輸入字段的值,當我點擊取消按鈕時'table td'不應該是更新的權利?但它的更新。 – krish

+0

對不起@ krish.pls看到我更新的答案 – Amal

+0

:(:(你改變了我無法理解的內容。 – krish

0

VAR existingRoleName = rowId.find( '輸入')VAL();

這是解決方案..