Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使点击取消按钮(ajax),代码也会被执行_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 即使点击取消按钮(ajax),代码也会被执行

Javascript 即使点击取消按钮(ajax),代码也会被执行,javascript,jquery,ajax,Javascript,Jquery,Ajax,好的,我有一个函数“deactivate”,它向它传递3个参数 <a href="#myModal" onclick="deactivate('{{ $user->getRoleName() }}', '{{ $user->getFullName() }}', {{ $user->id }}); return false;" role="button" data-toggle="modal" class="btn btn-danger btn-small delete"&

好的,我有一个函数“deactivate”,它向它传递3个参数

<a href="#myModal" onclick="deactivate('{{ $user->getRoleName() }}', '{{ $user->getFullName() }}', {{ $user->id }}); return false;" role="button" data-toggle="modal" class="btn btn-danger btn-small delete">
<i class="btn-icon-only"></i>
Deactivate User
</a>

以下是我的功能:

function deactivate(title, name, id) {
    $('#modal-user-role').html(title);
    $('#modal-user').html(name);
    $('#confirm').click(function() {
       $.ajax({
          url: '/user/' + id + '/',
          type: 'PUT',
          success: function (data) {
             $('#alerts').html('<p class="alert alert-success">Successfully deactivated ' + title + ': ' + name + '</p>' + $('#alerts').html());
             $('#r' + id).hide();
          },
          error: function (jqXHR, textStatus, errorThrown) {
             $('#alerts').html('<p class="alert alert-error">A problem occured while deactivating ' + title + ': ' + name + '</p>' + $('#alerts').html());
             $('#r' + id).hide();
          }
       });
    });
}
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close icon-remove" data-dismiss="modal" aria-hidden="true"></button>
        <h3 id="myModalLabel">Deactivate User</h3>
    </div>
    <div class="modal-body">
        <p>Are you sure you want to deactivate user <span id="modal-user-role"></span>: <span id="modal-user"></span>?</p>
        <p>This action cannot be undone.</p>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
        <button id="confirm" data-dismiss="modal" class="btn btn-danger">Confirm Deactivation</button>
    </div>
</div>
功能停用(标题、名称、id){
$(“#模式用户角色”).html(标题);
$('#modal user').html(名称);
$('#确认')。单击(函数(){
$.ajax({
url:'/user/'+id+'/',
键入:“PUT”,
成功:功能(数据){
$('#警报').html('

已成功停用'+title+':'+name+'

'+$('#警报').html(); $('#r'+id).hide(); }, 错误:函数(jqXHR、textStatus、errorshown){ $(“#警报”).html(“

禁用“+title+”:“+name+”

”+$(“#警报”).html()时出现问题; $('#r'+id).hide(); } }); }); }
以下是我的HTML随函数一起提供:

function deactivate(title, name, id) {
    $('#modal-user-role').html(title);
    $('#modal-user').html(name);
    $('#confirm').click(function() {
       $.ajax({
          url: '/user/' + id + '/',
          type: 'PUT',
          success: function (data) {
             $('#alerts').html('<p class="alert alert-success">Successfully deactivated ' + title + ': ' + name + '</p>' + $('#alerts').html());
             $('#r' + id).hide();
          },
          error: function (jqXHR, textStatus, errorThrown) {
             $('#alerts').html('<p class="alert alert-error">A problem occured while deactivating ' + title + ': ' + name + '</p>' + $('#alerts').html());
             $('#r' + id).hide();
          }
       });
    });
}
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close icon-remove" data-dismiss="modal" aria-hidden="true"></button>
        <h3 id="myModalLabel">Deactivate User</h3>
    </div>
    <div class="modal-body">
        <p>Are you sure you want to deactivate user <span id="modal-user-role"></span>: <span id="modal-user"></span>?</p>
        <p>This action cannot be undone.</p>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
        <button id="confirm" data-dismiss="modal" class="btn btn-danger">Confirm Deactivation</button>
    </div>
</div>

停用用户
是否确实要停用用户:

此操作无法撤消

取消 确认停用
有人知道为什么我的取消按钮不起作用吗?我相信这与我正在使用的onclick有关,但不确定如何修复它

因此,基本上,如果我单击deactivate user(停用用户)按钮,然后单击cancel(取消),然后单击另一个用户,然后单击cancel(取消),然后单击另一个用户,然后确认停用,它将从数据库中删除每个用户。 这是我不想要的

我有一个button type=“button”,我认为它可以解决这个问题。但事实并非如此


如果您有任何想法,我们将不胜感激。

正如我在评论中提到的,问题在于您如何注册单击处理程序

由于单击处理程序是在
deactivate
方法中注册的,因此每次调用该方法时,都会添加一个新的处理程序-它不会删除以前添加的处理程序

因此,您可以尝试使用


注意:当使用事件解除绑定时,我更喜欢使用

您是否尝试过简单地为“取消”按钮提供一个ID?然后使用该ID做什么?只需给它一个ID即可?是的,只需给它一个
ID=“cancelButton”
或其他东西:)将此添加到“取消”按钮:取消不起作用。是否从“确认”中删除事件处理程序?因为事件处理程序是可添加的。每次调用
deactivate()。事实上,那将是你的问题。在分配新的事件处理程序之前,请删除该事件处理程序。