Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 为什么';即使在满足if条件后,他还会进入其他部分吗?_Javascript_Jquery_Forms_Validation_Checkbox - Fatal编程技术网

Javascript 为什么';即使在满足if条件后,他还会进入其他部分吗?

Javascript 为什么';即使在满足if条件后,他还会进入其他部分吗?,javascript,jquery,forms,validation,checkbox,Javascript,Jquery,Forms,Validation,Checkbox,我有以下表单的HTML代码: <form name="question_issue_form" id="question_issue_form" action="question_issue.php"> <table class="trnsction_details" width="100%" cellpadding="5"> <tbody> <tr>

我有以下表单的HTML代码:

<form name="question_issue_form" id="question_issue_form" action="question_issue.php">
          <table class="trnsction_details" width="100%" cellpadding="5">
            <tbody>    
              <tr>
                <td></td>
                <td>
                  <input type="checkbox" name = "que_issue[]" value = "Question is wrong" id ="chkQueWrong">Question is wrong</input>
                </td>
              </tr>
              <tr>
                <td></td>
                <td><input type="checkbox" name = "que_issue[]" value = "Answers are wrong" id ="chkAnsWrong">Answers are wrong</input></td> 
              </tr>
              <tr>
                <td></td>
                <td><input type="checkbox" name = "que_issue[]" value = "Question direction is incorrect" id ="chkDirIncorrect">Question direction is incorrecct</input></td>                
              </tr>
              <tr>
                <td></td>
                <td><input type="checkbox" name = "que_issue[]" value = "Other" id ="chkOther">Other</input></td>          
              </tr>
              <tr>
                <td></td>
                <td class="set_message" style="display:none;"><textarea name="que_issue_comment" rows="4" cols="25" maxlength="100"></textarea></td>      
              </tr>
              <tr>
                <td></td>
                <td><input type="submit" name="submit" value="Submit" id="report_question_issue"/></td>
              </tr>
            </tbody>
          </table>
        </form>

if
语句执行多次,每个复选框执行一次。您将看到每个未选中复选框的警报,即使已选中另一个复选框。你需要完全改变逻辑;在它们之间进行迭代以查找选中的复选框,并在找到复选框后立即停止迭代


然后,在检查完它们之后,确定是否需要显示警报。

if语句执行多次,每个复选框执行一次。您将看到每个未选中复选框的警报,即使已选中另一个复选框。你需要完全改变逻辑;在它们之间进行迭代以查找选中的复选框,并在找到复选框后立即停止迭代


然后,在检查完它们之后,确定是否需要显示警报。

if语句执行多次,每个复选框执行一次。您将看到每个未选中复选框的警报,即使已选中另一个复选框。你需要完全改变逻辑;在它们之间进行迭代以查找选中的复选框,并在找到复选框后立即停止迭代


然后,在检查完它们之后,确定是否需要显示警报。

if语句执行多次,每个复选框执行一次。您将看到每个未选中复选框的警报,即使已选中另一个复选框。你需要完全改变逻辑;在它们之间进行迭代以查找选中的复选框,并在找到复选框后立即停止迭代


然后,在检查完所有警告后,确定是否需要显示警告。

如果您的
条件正在检查页面中的每个复选框,则显示
。这就是为什么它将转到else部分并警告
至少选中一个复选框
。要避免这种情况,请尝试以下代码

$(document).ready(function() {
    $('#chkOther').click(function() {
        $('.set_message').toggle(this.checked);
    });
    //This function is use for edit transaction status
    $(document).on('click', '#report_question_issue', function(e) {
        var submit = true;
        e.preventDefault();
        //$.colorbox.close();
        //for confirmation that status change
        var ans = confirm("Are you sure to report the question issue over?");
        if (!ans) { //alert("Yes its false");
            submit = false;
        }
        var post_url = $('#post_url').val();
        var checkbox = document.getElementsByName("que_issue[]");
        var checkedAtLeastOne = false;
        $('input[type="checkbox"]').each(function() {
            if ($(this).is(":checked")) {
                checkedAtLeastOne = true;
                return false; //to break from each()
            }
        });
        if (checkedAtLeastOne) {
            //alert("In If");
            var other = $("#chkOther");
            var textfield = $("[name=que_issue_comment]");
            if (other.is(":checked")) {
                if ($.trim($(textfield).val()).length == 0) {
                    //error
                    alert("Fill in the textarea");
                    submit = false;
                }
            }
        }
        else {
            alert("Check at least one checkbox");
            submit = false;
        }
        if (submit) {
            $.ajax({
                type: "POST",
                url: post_url,
                data: $('#question_issue_form').serialize(),
                dataType: 'json',
                success: function(data) {
                    alert("The values have been inserted");
                }
            });
        }
        else {
            alert("Fix the error");
        }
    });
});

您的
如果
条件正在检查页面中的每个复选框。这就是为什么它将转到else部分并警告
至少选中一个复选框
。要避免这种情况,请尝试以下代码

$(document).ready(function() {
    $('#chkOther').click(function() {
        $('.set_message').toggle(this.checked);
    });
    //This function is use for edit transaction status
    $(document).on('click', '#report_question_issue', function(e) {
        var submit = true;
        e.preventDefault();
        //$.colorbox.close();
        //for confirmation that status change
        var ans = confirm("Are you sure to report the question issue over?");
        if (!ans) { //alert("Yes its false");
            submit = false;
        }
        var post_url = $('#post_url').val();
        var checkbox = document.getElementsByName("que_issue[]");
        var checkedAtLeastOne = false;
        $('input[type="checkbox"]').each(function() {
            if ($(this).is(":checked")) {
                checkedAtLeastOne = true;
                return false; //to break from each()
            }
        });
        if (checkedAtLeastOne) {
            //alert("In If");
            var other = $("#chkOther");
            var textfield = $("[name=que_issue_comment]");
            if (other.is(":checked")) {
                if ($.trim($(textfield).val()).length == 0) {
                    //error
                    alert("Fill in the textarea");
                    submit = false;
                }
            }
        }
        else {
            alert("Check at least one checkbox");
            submit = false;
        }
        if (submit) {
            $.ajax({
                type: "POST",
                url: post_url,
                data: $('#question_issue_form').serialize(),
                dataType: 'json',
                success: function(data) {
                    alert("The values have been inserted");
                }
            });
        }
        else {
            alert("Fix the error");
        }
    });
});

您的
如果
条件正在检查页面中的每个复选框。这就是为什么它将转到else部分并警告
至少选中一个复选框
。要避免这种情况,请尝试以下代码

$(document).ready(function() {
    $('#chkOther').click(function() {
        $('.set_message').toggle(this.checked);
    });
    //This function is use for edit transaction status
    $(document).on('click', '#report_question_issue', function(e) {
        var submit = true;
        e.preventDefault();
        //$.colorbox.close();
        //for confirmation that status change
        var ans = confirm("Are you sure to report the question issue over?");
        if (!ans) { //alert("Yes its false");
            submit = false;
        }
        var post_url = $('#post_url').val();
        var checkbox = document.getElementsByName("que_issue[]");
        var checkedAtLeastOne = false;
        $('input[type="checkbox"]').each(function() {
            if ($(this).is(":checked")) {
                checkedAtLeastOne = true;
                return false; //to break from each()
            }
        });
        if (checkedAtLeastOne) {
            //alert("In If");
            var other = $("#chkOther");
            var textfield = $("[name=que_issue_comment]");
            if (other.is(":checked")) {
                if ($.trim($(textfield).val()).length == 0) {
                    //error
                    alert("Fill in the textarea");
                    submit = false;
                }
            }
        }
        else {
            alert("Check at least one checkbox");
            submit = false;
        }
        if (submit) {
            $.ajax({
                type: "POST",
                url: post_url,
                data: $('#question_issue_form').serialize(),
                dataType: 'json',
                success: function(data) {
                    alert("The values have been inserted");
                }
            });
        }
        else {
            alert("Fix the error");
        }
    });
});

您的
如果
条件正在检查页面中的每个复选框。这就是为什么它将转到else部分并警告
至少选中一个复选框
。要避免这种情况,请尝试以下代码

$(document).ready(function() {
    $('#chkOther').click(function() {
        $('.set_message').toggle(this.checked);
    });
    //This function is use for edit transaction status
    $(document).on('click', '#report_question_issue', function(e) {
        var submit = true;
        e.preventDefault();
        //$.colorbox.close();
        //for confirmation that status change
        var ans = confirm("Are you sure to report the question issue over?");
        if (!ans) { //alert("Yes its false");
            submit = false;
        }
        var post_url = $('#post_url').val();
        var checkbox = document.getElementsByName("que_issue[]");
        var checkedAtLeastOne = false;
        $('input[type="checkbox"]').each(function() {
            if ($(this).is(":checked")) {
                checkedAtLeastOne = true;
                return false; //to break from each()
            }
        });
        if (checkedAtLeastOne) {
            //alert("In If");
            var other = $("#chkOther");
            var textfield = $("[name=que_issue_comment]");
            if (other.is(":checked")) {
                if ($.trim($(textfield).val()).length == 0) {
                    //error
                    alert("Fill in the textarea");
                    submit = false;
                }
            }
        }
        else {
            alert("Check at least one checkbox");
            submit = false;
        }
        if (submit) {
            $.ajax({
                type: "POST",
                url: post_url,
                data: $('#question_issue_form').serialize(),
                dataType: 'json',
                success: function(data) {
                    alert("The values have been inserted");
                }
            });
        }
        else {
            alert("Fix the error");
        }
    });
});


说真的,你每十分钟问一个完全不同的问题。告诉你的老板雇用一些开发人员…@A.Wolff:请不要误解我的意思,但我有一个很重要的截止日期,没有人在这里帮助我,所以我向一批专家求助。“没有人在这里帮助我”你大部分时间都有一些准确的答案。请不要误解我们的意思,但我们并不是来认真做你的工作的,你每十分钟问一个完全不同的问题。告诉你的老板雇用一些开发人员…@A.Wolff:请不要误解我的意思,但我有一个很重要的截止日期,没有人在这里帮助我,所以我向一批专家求助。“没有人在这里帮助我”你大部分时间都有一些准确的答案。请不要误解我们的意思,但我们并不是来认真做你的工作的,你每十分钟问一个完全不同的问题。告诉你的老板雇用一些开发人员…@A.Wolff:请不要误解我的意思,但我有一个很重要的截止日期,没有人在这里帮助我,所以我向一批专家求助。“没有人在这里帮助我”你大部分时间都有一些准确的答案。请不要误解我们的意思,但我们并不是来认真做你的工作的,你每十分钟问一个完全不同的问题。告诉你的老板雇用一些开发人员…@A.Wolff:请不要误解我的意思,但我有一个很重要的截止日期,没有人在这里帮助我,所以我向一批专家求助。“没有人在这里帮助我”你大部分时间都有一些准确的答案。请不要误解我们,但我们不是来做你的工作的:你至少有一个复选框的逻辑工作得很好,但是当值为“其他”的复选框被选中时,textarea的逻辑仍然不工作。一个小问题仍然存在。即使出现错误,表单仍将被提交。如何解决这个问题?即使填写了文本区域,表单也不会被提交。警报显示“填写文本区域”。我已经将代码添加到更新的fiddle::您至少有一个复选框的逻辑工作正常,但选中值为“Other”的复选框时textarea的逻辑仍然不工作。一个小问题仍然存在。即使出现错误,表单仍将被提交。如何解决这个问题?即使填写了文本区域,表单也不会被提交。警报显示“填写文本区域”。我已经将代码添加到更新的fiddle::您至少有一个复选框的逻辑工作正常,但选中值为“Other”的复选框时textarea的逻辑仍然不工作。一个小问题仍然存在。即使出现错误,表单仍将被提交。如何解决这个问题?即使填写了文本区域,表单也不会被提交。警报显示“填写文本区域”。我已经将代码添加到更新的fiddle::您至少有一个复选框的逻辑工作正常,但选中值为“Other”的复选框时textarea的逻辑仍然不工作。一个小问题仍然存在。即使出现错误,表单仍将被提交。如何解决这个问题?即使填写了文本区域,表单也不会被提交。警报说“填写t”