在只调用了一次函数return false之后,表单并没有进行提交

form is not doing submit after calling function return false only one time

本文关键字:之后 false 表单 并没有 提交 return 函数 调用 一次      更新时间:2023-09-26

我正在尝试在验证用户输入后控制表单提交用户必须至少选择一个无线电,否则表单将不会提交

第一部分工作得很好,如果用户没有选择任何无线电输入,我称之为

$('form').submit(function () { return false });

否则,如果他选择了什么,我会称之为

$('form').submit();

但它没有提交

function validateSelection() {
        var temp = false;
        $('.lang-radio > input[type=radio]').each(function () {
            if ($(this).is(':checked')) {
                temp |= $(this).is(':checked')
            };
        });
        if (temp != 1) {
            $('form').submit(function () { return false });
            $('.high-light').effect("shake");
        }
        else {
            $('form').submit();
        }
    }

我正在从OnClientClick="validateSelect();"调用函数validateSelection我使用的是asp.net网络表单

进行时

$('form').submit(function () { return false });

您正在将事件处理程序附加到submit事件。因此,如果这一行首先执行,那么每次执行$('form').submit();时,都会触发事件处理程序并返回false而不提交。

如果.Net控件是一个提交按钮,您可以简单地将第一行替换为return false(编辑:并将其更改为OnClientClick="return validateSelection();"),否则您可以完全删除它。

1)从表单中删除OnClientClick="validateSelect();"

2) 将class="validateForm"提供给您的表单

3) 将以下js代码放入您的js 中

$(document).ready(function(){
                        $('.validateForm').on('submit',function(){
                            var ckradio = $(this).find('[type=radio]:checked');
                            if(ckradio.length == 0){
                                return false;
                            }else{
                                return true;
                            }
                        });
                    });