Javascript 无法限制用户输入超过8个字符

Javascript 无法限制用户输入超过8个字符,javascript,jquery,jquery-ui,jquery-mobile,cordova,Javascript,Jquery,Jquery Ui,Jquery Mobile,Cordova,您好,以下是我的登录信息,我想限制用户在用户名字段中输入8个字符,但它不起作用,以下是我的代码: <div data-role="content"> <form id="loginForm"> <div data-role="fieldcontain" class="ui-field-contain ui-body ui-br"> <label for="username">

您好,以下是我的登录信息,我想限制用户在用户名字段中输入8个字符,但它不起作用,以下是我的代码:

<div data-role="content">

        <form id="loginForm">
            <div data-role="fieldcontain" class="ui-field-contain ui-body ui-br">
                <label for="username">Username:</label> <input type="text"
                    name="username" id="username" value=""   maxlength="8" /> <label for="password">Password:</label>
                <input type="password" name="password" id="password" value="" /> <label
                    for="dob">Date of birth:</label> <input type="password"
                    type="password" name="dob" id="dob" value="" />
            </div>
            <div >
                <fieldset class="ui-grid-a" >
                    <div class="ui-block-a" >
                        <input type="submit" data-role="button" value="Login"
                            id="submitButton">
                    </div>
                    <div class="ui-block-b">
                        <input type="reset" data-role="button" value="Cancel"
                            id="cancelButton">
                    </div>

                </fieldset>
            </div>
        </form>

    </div>

    <script type="text/javascript">

    </script>

    <script type="text/javascript">
        $("#username").live('keydown', function (event)
        {

            if ((event.keyCode.length>8))
            {
                event.preventDefault();
            }

        }); 

    </script>

用户名:密码:
出生日期:
$(“#用户名”).live('keydown',函数(事件)
{
如果((event.keyCode.length>8))
{
event.preventDefault();
}
}); 

但用户仍然可以在用户名字段中输入任意数量的字符。这个代码有什么问题?如有任何建议,将不胜感激。提前感谢

在输入字段中添加一个
maxlength
。。而不是使用脚本来限制

<input type="text" name="username" id="username" value=""  maxlength="8" />

您需要javascript做什么?只需将
maxlength
属性添加到输入字段

<input type="text" name="usrname" maxlength="8" />

就这么简单。


函数countChars(countfrom、displayto){
var val=document.getElementById(countfrom).value;
val=val.替换(/[^a-zA-Z0-9]/igm,“”);
var len=val.length;
document.getElementById(displayto).innerHTML=len;
onkeydown=函数(e){
如果(e.keyCode!=8&&e.keyCode!=46&&e.keyCode!=9&&e.keyCode!=13&&e.keyCode!=16&&e.keyCode!=17&&
e、 keyCode!=18&&e.keyCode!=19&&e.keyCode!=20&&e.keyCode!=27&&e.keyCode!=33&&e.keyCode!=34&&
e、 keyCode!=35&&e.keyCode!=36&&e.keyCode!=37&&e.keyCode!=38&&e.keyCode!=39&&e.keyCode!=40&&
e、 keyCode!=45&&e.keyCode!=91&&e.keyCode!=92&&e.keyCode!=93&&e.keyCode!=112&&e.keyCode!=113&&
e、 keyCode!=114&&e.keyCode!=115&&e.keyCode!=116&&e.keyCode!=117&&e.keyCode!=118&&e.keyCode!=119&&
e、 keyCode!=120&&e.keyCode!=121&&e.keyCode!=122&&e.keyCode!=123&&e.keyCode!=144&&e.keyCode!=145
&&len>=8)
e、 预防默认值();
}
}
第3天任务-1

在消除特殊字符的情况下计算字符数

输入了0个字符。
为什么不直接使用maxlength属性?+1,嘿,Vega,好久不见,OP的标记中有
maxlength
属性:)@Vega在添加maxlength=“8”后,如我的原始问题中所编辑的,用户仍然可以输入任意数量的字符,还有一件事我正在为jquery mobile运行此代码,它会影响这一点吗?因为它适用于4个字符,但不适用于我的应用程序。@Raminson谢谢。。我发誓它不在他最初的帖子中:)@Raminson是的,它不在我后来添加的最初帖子中。@PPD你知道用户是如何输入的吗。。maxlength应该可以正常工作。。我不知道你为什么/怎么会失败。