我在文本字段计数单词和一定量的字后,我使用防止默认。在其他人,我想重新启用默认命令。

是否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不火的按键事件进行删除,最后,进入,逃生,功能键,Home,插入,上一页/下和标签。在Safari为删除的键码是在按键事件不正确。

有关这些原因我有一个双重的建议;首先,使用keydown事件,而不是让你得到了正确的键码。

二,看键码和如果它是删除或退格然后不要的preventDefault。

if ((event.keyCode != 46 && event.keyCode != 8) || input_length > (wordNum - 1)) {
    return false;
} else {
    return true;
}

其他提示

应该不是

if maxwords
   preventDefault
else
   return true

做的伎俩?

只需在事件处理程序的末尾使用return true;。那会冒泡事件到浏览器。

看起来不像它, https://developer.mozilla.org/en/ DOM /事件,但你可以的不叫 ...

$("#delete_button").click(function(e){
            var category = $("#category").val();
            var answer = confirm("Are you sure you would like to delete the " + category + " category?");
            if (!answer)
                e.preventDefault();
        });
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top