Javascript:确认框
我有一张有两个提交按钮的表格是和否 我有一个自定义div的javascript,用户必须确认他的选择 我的问题是,当我点击“是”按钮或“否”按钮时,总是会打开2个div 我怎样才能解决这个问题 我要一张是的,另一张不是 演示: 我的Javascript代码: 使用以下命令:Javascript:确认框,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一张有两个提交按钮的表格是和否 我有一个自定义div的javascript,用户必须确认他的选择 我的问题是,当我点击“是”按钮或“否”按钮时,总是会打开2个div 我怎样才能解决这个问题 我要一张是的,另一张不是 演示: 我的Javascript代码: 使用以下命令: var confirm; function doConfirm(msg, yesFn, noFn) { confirm = true; var confirmBox = $("#confirmBo
var confirm;
function doConfirm(msg, yesFn, noFn) {
confirm = true;
var confirmBox = $("#confirmBox");
confirmBox.find(".message").text(msg);
confirmBox.find(".yes,.no").unbind().click(function () {
confirmBox.hide();
});
confirmBox.find(".yes").click(yesFn);
confirmBox.find(".no").click(noFn);
confirmBox.show();
}
function doReject(msg, yesFn, noFn) {
confirm = false;
var rejectBox = $("#RejectBox");
rejectBox.find(".message").text(msg);
rejectBox.find(".yes,.no").unbind().click(function () {
rejectBox.hide();
});
rejectBox.find(".yes").click(yesFn);
rejectBox.find(".no").click(noFn);
rejectBox.show();
}
$(function () {
$("form").submit(function (e) {
e.preventDefault();
var form = this;
if(confirm){
doConfirm("Confirm that you want to validate?", function yes() {
form.submit();
});}
else{
doReject("Confirm that you want reject?", function no() {
// do nothing
});}
});
});
我用if语句做了一个简单的检查。单击“拒绝”时,确认等于true;单击“拒绝”按钮时,确认等于false
小提琴:使用以下方法:
var confirm;
function doConfirm(msg, yesFn, noFn) {
confirm = true;
var confirmBox = $("#confirmBox");
confirmBox.find(".message").text(msg);
confirmBox.find(".yes,.no").unbind().click(function () {
confirmBox.hide();
});
confirmBox.find(".yes").click(yesFn);
confirmBox.find(".no").click(noFn);
confirmBox.show();
}
function doReject(msg, yesFn, noFn) {
confirm = false;
var rejectBox = $("#RejectBox");
rejectBox.find(".message").text(msg);
rejectBox.find(".yes,.no").unbind().click(function () {
rejectBox.hide();
});
rejectBox.find(".yes").click(yesFn);
rejectBox.find(".no").click(noFn);
rejectBox.show();
}
$(function () {
$("form").submit(function (e) {
e.preventDefault();
var form = this;
if(confirm){
doConfirm("Confirm that you want to validate?", function yes() {
form.submit();
});}
else{
doReject("Confirm that you want reject?", function no() {
// do nothing
});}
});
});
我用if语句做了一个简单的检查。单击“拒绝”时,确认等于true;单击“拒绝”按钮时,确认等于false
fiddle:您的问题是您同时调用doConfirm和doReject。根据他们单击是或否的按钮编写一个条件。您的问题是您同时调用doConfirm和doReject。根据他们单击是或否的按钮编写一个条件。无论何时提交表单,您都会调用这两个提示函数。这两个按钮都是提交按钮,因此在每种情况下都会调用这两个函数。您需要一种方法来区分这两个按钮。试着这样做:
$('form').find('button[type=submit]').click(function(e){
e.preventDefault();
$form = $(this).closest('form');
if(this.name == 'yes'){
doConfirm("Confirm that you want to validate?", function yes() {
$form.submit();
});
} else {
doReject("Confirm that you want reject?", function no() {
// do nothing
});
}
});
无论何时提交表单,都将调用这两个提示函数。这两个按钮都是提交按钮,因此在每种情况下都会调用这两个函数。您需要一种方法来区分这两个按钮。试着这样做:
$('form').find('button[type=submit]').click(function(e){
e.preventDefault();
$form = $(this).closest('form');
if(this.name == 'yes'){
doConfirm("Confirm that you want to validate?", function yes() {
$form.submit();
});
} else {
doReject("Confirm that you want reject?", function no() {
// do nothing
});
}
});
您提交表单,并在提交时调用doconfirm和doreject。因此,当您提交表单并在提交时调用doconfirm和doreject时,两个函数都将运行。因此,您将运行这两个函数