即使我使用return false,表单也是提交的

时间:2012-11-21 12:00:46

标签: jquery

即使我正在调用return false,

表单仍然是提交 我的代码

$(document).ready(function() {
    $('.submit').click(function() {
        $('.hour').each(function() {
            var $hours = $(this).val();
            if ($hours == "") {
                alert(" Active Time is required");
                return true;
            }
        });
    });
});​

提交按钮

 <input type="submit" class="submit" name="Submit" id="Submit" value="Submit" 
onclick="return validateForm();"/>

4 个答案:

答案 0 :(得分:1)

您需要在.each回调函数之外返回。

答案 1 :(得分:0)

$('.submit').click(function() {
var r = false;
 $('.hour').each(function() {
            var $hours = $(this).val();
            if ($hours == "") {
                alert(" Active Time is required");
                r = true;
            }
        });
return r;
});

答案 2 :(得分:0)

您没有从绑定到提交按钮的click事件处理程序返回任何内容。您可以使用.filter()方法将.hour元素集合减少到没有值的元素,从而显着缩短代码,并且可以返回检查结果元素长度的结果从事件处理程序允许/阻止表单提交:

$(".submit").click(function () {
    // This return statement returns from the click event handler
    return $(".hour").filter(function () {
        // This one returns from the filter callback (once for each element)
        return this.value === "";
    }).length === 0;
});​

这是working example

答案 3 :(得分:0)

<script>

    $(document).ready(function(){
        $('.submit').click(function(e){ 
    var flag = false;
            $('.hour').each(function() {
                var $hours =  $(this).val();
                if (!flag && $hours == "")
                {
                    flag = true;
                    alert(" Active Time is required"); 
                    e.preventDefault();
                } 
            });   
        });
    });

</script>

提交按钮

<input type="submit" class="submit" name="Submit" id="Submit" value="Submit" />