我有一个带有2个提交按钮的表单(是和否),
我有一个自定义div的javascript,用户必须确认他的选择。
我的问题是当我点击是按钮或没有按钮总是打开我2个div。
我怎么能解决这个问题?
我想要一个div打开是和其他打开。
样本:
我的Javascript代码:
function doConfirm(msg, yesFn, noFn) {
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) {
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;
doConfirm("Confirma a validação deste Caso Suporte?", function yes() {
form.submit();
});
doReject("Rejeitar?", function no() {
// do nothing
});
});
});
答案 0 :(得分:2)
每当提交表单时,您都会调用两个提示函数。两个按钮都是提交按钮,因此在每种情况下都会调用这两个函数。您需要一种方法来区分这两个按钮。尝试这样的事情:
$('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
});
}
});
答案 1 :(得分:1)
使用以下内容:
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。
答案 2 :(得分:1)
你的问题是你要同时调用doConfirm和doReject。根据他们点击的按钮(是或否)写一个条件。