如果单击其他按钮而不保存编辑,JQuery会发出警告

时间:2017-06-28 06:11:04

标签: javascript php jquery

我有多个行中的多个编辑按钮,实际上它是按照数据库数据动态创建的,每行我都有EDIT和DELETE按钮,当点击编辑按钮时会更改为UPDATE和CANCEL,在我的应用程序中我可以编辑多个如果单击编辑按钮而没有保存以前的编辑或没有单击取消,我希望一次获得警告信息。

<div class="form view">
     <div class="table-responsive">
          <table class="table table-hover type-view-table">
                <thead>
                   <tr>
                   <th>Categories</th>
                   <th>Types</th>
                   <th></th>
                   </tr>
                </thead>
                     <?php
                      if(isset($_POST['table_product_view'])){
                      $result = $wpdb->get_results('SELECT id,category FROM '.$ps_detail_table_name, ARRAY_A);
                       foreach ($result as $value){   ?>
                        <tr id='catgry-row<?php echo $value['id']; ?>'>
                        <td id='catgry-name<?php echo $value['id']; ?>'><?php echo $value['category']; ?></td>
                        <td><button class='btn btn-primary btn-sm' id='edit-catgry<?php echo $value['id']; ?>' onclick=edit_category('<?php echo $value['id']; ?>');>Edit</button>
                            <button class='btn btn-danger btn-sm' id='delete-catgry<?php echo $value['id']; ?>' onclick=delete_category('<?php echo $value['id']; ?>');>Delete</button>
                            <button class='btn btn-primary btn-sm' style='display:none' id='update-catgry<?php echo $value['id']; ?>' onclick=update_category('<?php echo $value['id']; ?>');>Update</button>
                            <button class='btn btn-warning btn-sm' style='display:none' id='cancel-update-catgry<?php echo $value['id']; ?>' onclick=cancel_update_category('<?php echo $value['id']; ?>');>Cancel</button>
                        </td>
                        </tr>
                <tbody id="table-type-view">
                </tbody>
            </table>
      </div>
</div>

JQuery的

function edit_category(id) {
curent_edit_name = 'category';
curent_edit_id = id;
var catgry = document.getElementById("catgry-name"+id).innerHTML;

document.getElementById("catgry-name"+id).innerHTML = "<input type='text' id='catgry-new-name"+id+"' class='table-form-txt' value='"+catgry+"'>" +
    "<input type='hidden' id='catgry-hdn-name"+id+"' value='"+catgry+"'/>";
document.getElementById("edit-catgry"+id).style.display="none";
document.getElementById("delete-catgry"+id).style.display="none";
document.getElementById("update-catgry"+id).style.display="inline";
document.getElementById("cancel-update-catgry"+id).style.display="inline";
}

function update_category(id){
var new_valu = document.getElementById("catgry-new-name"+id).value;
var old_name = document.getElementById("catgry-hdn-name"+id).value;
$.ajax({
        type:'post',
        url:ajaxurl,
        data:{'action':'php_for_ajax_callback',
             'old_ctgry_name':old_name,
              'new_ctgry_name':new_valu
        },
        success:function (response) {
            if(response=="success"){
                document.getElementById("catgry-name"+id).innerHTML=new_valu;
                document.getElementById("edit-catgry"+id).style.display="inline";
                document.getElementById("delete-catgry"+id).style.display="inline";
                document.getElementById("update-catgry"+id).style.display="none";
                document.getElementById("cancel-update-catgry"+id).style.display="none";
            }
        }

});
}


function cancel_update_category(id) {
 var catgry = document.getElementById("catgry-hdn-name"+id).value;

 document.getElementById("catgry-name"+id).innerHTML=catgry;
 document.getElementById("edit-catgry"+id).style.display="inline";
 document.getElementById("delete-catgry"+id).style.display="inline";
 document.getElementById("update-catgry"+id).style.display="none";
 document.getElementById("cancel-update-catgry"+id).style.display="none";
 curent_edit_name = '';
 curent_edit_id = '';
 }

我的表格如下 - http://talkerscode.com/webtricks/demo/demo_add-edit-and-delete-rows-from-table-dynamically-using-javascript.php

如何使用Jquery oy Javascript

获取警告

2 个答案:

答案 0 :(得分:1)

这是我用jQuery完成的, 您可能想尝试这样:

var edit_clicks = 0;
$( function(){
    $('button[id^=edit-catgry]').on('click', function(){
        if( edit_clicks > 0 ) {
            alert( "Update Or Cancel Previous row")
        }
        else {
            ++edit_clicks;
            $(this).css('display','none');
            $(this).siblings('button[id^=update-catgry-]').css('display','inline');
    	    $(this).siblings('button[id^=cancel-update-catgry]').css('display','inline');
        }
    });
  
    $('button[id^=cancel-update-catgry]').on('click', function(){
        --edit_clicks;
        $(this).siblings('button[id^=edit-catgry]').css('display','inline');
        $(this).siblings('button[id^=update-catgry-]').css('display','none');
    	$(this).css('display','none');
    });
  
    $('button[id^=update-catgry]').on('click', function(){
        --edit_clicks;
        $(this).siblings('button[id^=edit-catgry]').css('display','inline');
        $(this).siblings('button[id^=cancel-update-catgry-]').css('display','none');
    	$(this).css('display','none');
    });
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
  <td>
<button class='btn btn-primary btn-sm' id='edit-catgry-1' onclick=edit_category(1);>Edit</button>
 <button class='btn btn-primary btn-sm' style='display:none' id='update-catgry-1' onclick=update_category(1);>Update</button>
<button class='btn btn-warning btn-sm' style='display:none' id='cancel-update-catgry-1' onclick=cancel_update_category(1);>Cancel</button>
</td>
  </tr>
  <tr>
  <td>
<button class='btn btn-primary btn-sm' id='edit-catgry-2' onclick=edit_category(2);>Edit</button>
<button class='btn btn-primary btn-sm' style='display:none' id='update-catgry-2' onclick=update_category(2);>Update</button>
<button class='btn btn-warning btn-sm' style='display:none' id='cancel-update-catgry-2' onclick=cancel_update_category(2);>Cancel</button>
</td>
  </tr>
  <tr>
  <td>
<button class='btn btn-primary btn-sm' id='edit-catgry-3' onclick=edit_category(3);>Edit</button>
<button class='btn btn-primary btn-sm' style='display:none' id='update-catgry-3' onclick=update_category(3);>Update</button>
<button class='btn btn-warning btn-sm' style='display:none' id='cancel-update-catgry-3' onclick=cancel_update_category(3);>Cancel</button>
</td>
  </tr>
</table>

答案 1 :(得分:0)

以这种方式添加jquery listeners.,您可以控制何时单击某个元素并在用户执行某些操作时显示所需的警告,您可以将此侦听器用于许多事件。