我有一个提示框,当我点击删除用户时,应该询问确认他是否要删除用户, 的 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,它仍然会在按下提交后刷新另外,如果我按下取消,它仍会执行并删除用户。我尝试了很多不同的方法,但似乎没有什么工作在这里。提前谢谢。
答案 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')
}