表单在调用函数返回false后只执行一次提交

时间:2014-09-17 13:00:16

标签: javascript jquery asp.net form-submit

我正在尝试在验证用户输入后控制表单提交 用户必须至少选择一个收音机,否则表格不会提交

如果用户没有选择我调用的任何无线电输入

,则第一部分工作正常
$('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 =“validateSelection();”调用函数validateSelection 我正在使用asp.net webforms

2 个答案:

答案 0 :(得分:3)

当你这样做时

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

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

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

答案 1 :(得分:1)

1)删除OnClientClick =" validateSelection();"从你的表格

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;
                            }
                        });
                    });