Wil*_*ins 20 firefox jquery function preventdefault jquery-events
我正在计算文本字段中的单词,并在一定数量的单词后,我使用防止默认.在else中,我想重新设置默认命令.
preventDefault()是否具有相反的功能?
以下是一些示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>preventDefault</title>
    <style type="text/css"></style>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(function() {
                var wordNum = 3;
                var input_length;
                $("#max").text("max word(s): " + wordNum);
                $("#test").keypress(function(event) {
                    input_length = $.trim($(this).val())
                            .replace(/\s+/g, " ")
                            .split(' ').length;
                    if (input_length > (wordNum - 1)) {
                        event.preventDefault();
                    } else {
                        return true;
                    }
                });
            });
        </script>
        </head>
        <body>
            <div id="max"></div>
            <textarea id="test" cols="20" rows="5"></textarea>
</body>
</html>
它似乎适用于IE,但Firefox并不喜欢它.
我认为你遇到的问题是你没有找到删除键.Preventdefault不会一起取消事件处理程序.但是,一旦您达到字段的最大长度,您的代码将无法再删除任何字符,因为删除了按键.
它在IE中工作的原因是因为IE不会为delete,end,enter,escape,function键,home,insert,pageUp/Down和tab激活keypress事件.在Safari中,按键事件中删除的键码不正确.
由于这些原因,我有一个双重的建议; 首先,使用keydown事件,以便获得正确的密钥代码.
其次,查看密钥代码,如果是删除或退格,则不要阻止默认.
if ((event.keyCode != 46 && event.keyCode != 8) || input_length > (wordNum - 1)) {
    return false;
} else {
    return true;
}
不能
if maxwords
   preventDefault
else
   return true
做诀窍?
| 归档时间: | 
 | 
| 查看次数: | 31266 次 | 
| 最近记录: |