Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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:确认框_Javascript_Jquery_Html_Css - Fatal编程技术网

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

我有一张有两个提交按钮的表格是和否

我有一个自定义div的javascript,用户必须确认他的选择

我的问题是,当我点击“是”按钮或“否”按钮时,总是会打开2个div

我怎样才能解决这个问题

我要一张是的,另一张不是

演示:

我的Javascript代码:

使用以下命令:

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时,两个函数都将运行。因此,您将运行这两个函数