jQuery validator和bootstrap.js - 通知/错误

时间:2012-11-21 08:20:48

标签: jquery html css twitter-bootstrap

我正在为单页网站探索jQuery和bootstrap.js。如果在复杂的CSS和jQuery中不够强大,这可能会有点麻烦。我的目标是简单地构建他们的英雄框示例,其右上角有一个登录表单,如下所示:http://twitter.github.com/bootstrap/examples/hero.html

我有一个用于创建用户的工作表单,我使用了这个示例:http://alittlecode.com/files/jQuery-Validate-Demo/

目标是将其与这些通知/提醒相结合:http://www.w3resource.com/twitter-bootstrap/alerts-and-errors-tutorial.php

我的相关部分是:

$(document).ready(function(){
$.validator.addMethod('validChars', function (value) {

    var iChars = "!#$%^&*()+=-[]\\\';,/{}|\":<>?";

    for (var i = 0; i < value.length; i++) {
        if (iChars.indexOf(value.charAt(i)) != -1) {
         return false;
      }
    }

    return true;

    });


$('#login_form').validate(
        {
        rules: {
            login_email: {
            required: true,
            validChars:true,
            maxlength:50
            },
            login_password: {
            validChars:true,
            required: true
            }
        },
        highlight: function(input) {
            $(input).closest('.control-group').addClass('error');
        },
        unhighlight: function(input) {
            $(input).closest('.control-group').addClass('success');
        }
        });


});

我的表格看起来像这样:

                        <form id="login_form" name="login_form"; class="navbar-form pull-right control-group" action="">

                        <input  class="span2 control-group"  placeholder="Email" name="login_email" id="login_email">

                        <input  class="span2 control-group"  placeholder="Password" name="login_password" id="login_password">

                        <button class="btn login" type="button" onclick="login();">Sign in</button>
                        <button class="btn requestor" type="button" onclick="createForm();" >Create new account</button>
                    </form>

什么都没发生,我真的没有想法。

通知或事件的野心是说明性的,我主要担心的是验证是否与表格相关联。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

问题是你没有给<input>一个类型。当他们没有类型时,验证无法解决输入问题。

Validate评估输入字段,如

 .validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, " +
                "[type='number'], [type='search'] ,[type='tel'], [type='url'], " +
                "[type='email'], [type='datetime'], [type='date'], [type='month'], " +
                "[type='week'], [type='time'], [type='datetime-local'], " +
                "[type='range'], [type='color'] ",
                "focusin focusout keyup", delegate)

不包含任何类型的输入。因此

<input type="text" class="span2 control-group"  placeholder="Email" name="login_email" id="login_email">

<input type="text" class="span2 control-group"  placeholder="Password" name="login_password" id="login_password">

会做到这一点!

相关问题