失败的表单验证会强制用户在提交之前刷新页面

时间:2014-03-10 13:58:04

标签: jquery html

因为IE< 10不支持Required html表单属性,我不得不使用jquery来检查表单的空白表单字段。问题是,当用户点击提交并弹出Required错误消息时,他们无法在字段中放置值并点击submit。相反,他们必须刷新页面才能使提交按钮再次起作用。它们是一种方式,以便用户在验证失败后不必刷新页面吗?

$('html body input#create.btn').click(function() {
    $('select').each(function() {
        if ($(this).val() < 1) {
            $(this).focus();
            $('#required-warning-label').remove();
            $(this).parent().append('<span id="required-warning-label" class="label label-warning">Required</span>');
            stopsubmit = true;
            return false;
        }
    })
    if (stopsubmit) return false;
})

3 个答案:

答案 0 :(得分:0)

将您的代码更新为

$('html body input#create.btn').click(function() {
stopsubmit = false;
$('select').each(function() {
    if ($(this).val() < 1) {
        $(this).focus();
        $('#required-warning-label').remove();
        $(this).parent().append('<span id="required-warning-label" class="label label-warning">Required</span>');
        stopsubmit = true;
        return false;
    }
})
if (stopsubmit) return false;
})

答案 1 :(得分:0)

那是因为您从未将stopsubmit标志设置为false。 之前使用.each循环选择字段。

当你在它的时候,也可以在点击处理函数中创建一个 local 变量,不需要它是全局的。

答案 2 :(得分:0)

也许如果你改变它,程序将运作良好: if(stopsubmit)返回false;

  $('html body input#create.btn').click(function() {
   var stopsubmit=false;
        $('select').each(function() {
            if ($(this).val() < 1) {
                $(this).focus();
                $('#required-warning-label').remove();
                $(this).parent().append('<span id="required-warning-label" class="label label-warning">Required</span>');
                stopsubmit = true;
                return false;
            }
        })
       if(stopsubmit==true){

       }else{
        $("your_form_name").submit();
       }
    })