提示确认框,取消应停止执行

时间:2015-12-29 09:24:51

标签: javascript jquery popup

我有一个提示框,当我点击删除用户时,应该询问确认他是否要删除用户, 的 HTML

<form name="myform" id="myform" action="/AWSCustomerJavaWebFinal/DeleteUser" method="POST" onSubmit="myFunction()">
  Choose User:
  <br>
  <select name="selectUser" multiple style="width: 200px !important; min-width: 200px; max-width: 200px;">
    <c:forEach var="user" items="${listUsers.rows}">
      <option value="${user.id}">
        <c:out value="${user.userId}" />
    </c:forEach>
  </select>
  <input type="submit" value="Delete User" class="btn btn-primary" />
  <input type="reset" value="Reset" class="btn btn-primary" id=button1>
</form>

的javascript

function myFunction() {
  var confirm = prompt("Do you want to continue", "yes");
  if (confirm == yes) {
    var form = $('#myform');
    form.submit(function() {
      $.ajax({
        type: form.attr('method'),
        url: form.attr('action'),
        data: form.serialize(),
        success: function(data) {
          var result2 = data;
          alert("deleted")
        }
      });
      return false;
    });
    $(document).ready(function() {
      $(document).ajaxStart(function() {
        $("#wait").css("display", "block");
      });
      $(document).ajaxComplete(function() {
        $("#wait").css("display", "none");
      });
    });
    return false;
  } else {
    alert("User not deleted")
    return false;
  }
  return false;
}

它要求确认,如果我在文本框中写入yes之后按下ok,它会转到servlet,并且不会发出警告(“已删除”),并且我返回false,它仍然会在按下提交后刷新另外,如果我按下取消,它仍会执行并删除用户。我尝试了很多不同的方法,但似乎没有什么工作在这里。提前谢谢。

2 个答案:

答案 0 :(得分:2)

一个不错的单行:

if( !confirm("Do you want to continue?") ) return alert("User was not deleted.")

return将停止执行该功能。

您有一个form.submit(function() { $.ajax...,无论您设置了何种验证机制,都会在提交表单时始终触发您的ajax调用。

以下是您的代码的干净,重写版本:

HTML中的

<form onSubmit="confirmSubmission()">(比myFunction()更明确;)

$(document).ready(function() {
    var $wait = $("#wait");

    $(document).ajaxStart(function() {
        $wait.hide();
    }).ajaxComplete(function() {
        $wait.show();
    });
});

function confirmSubmission() {
    if ( !confirm("Do you want to continue")) return alert("Submission has been canceled.")

    submit();
}

function submit(){
    var $form = $('#myform');
    $.ajax({
        type   : $form.attr('method'),
        url    : $form.attr('action'),
        data   : $form.serialize(),
        success: function(data) {
            var result2 = data;
            alert("deleted")
        }
    });
}

答案 1 :(得分:1)

尝试使用confirm而不是prompt

var r = confirm("Continue delete?");
if (r == true) {
   //your logic to delete
} else {
    //alert('user dint delete')
}