相关疑难解决方法(0)

在输入时验证html文本输入

在键入HTML文本输入时,验证HTML文本输入的最佳方法是什么?我所知道的所有方法都有一些缺点:

  1. 使用$.keypress您只能访问输入的旧值,而不是新值.此外,将无法检测到某些事件(如使用鼠标进行剪切/粘贴).

  2. $.change仅在输入失去焦点时才使用.

  3. 这个问题提出了一个解决方案,您可以使用轮询来监视属性更改.原则上,可以在回调中验证新值,如果无效则可以恢复为旧值.然而,除了要求投票之外,我不确定它是否没有竞争条件.

  4. 本文建议使用浏览器特定功能,如果没有可用则回退到轮询.看起来是迄今为止最好的方法.

  5. [更新]如答案中所指出的,$.keyup更新后可以访问该值.但是,它不仅不适用于鼠标剪切/粘贴,而且如果按住某个键也会失败,只有在输入很多内容后才会释放.或者,如果组合keydownkeyup保存/恢复旧值,则在用户键入太快时会中断.

以上解决方案都没有错误或非常安全的跨浏览器.那里有更好的解决方案,既可以随时使用,也可以在制造中使用?似乎是一个常见的问题,我最近试图回答类似的 问题,没有成功,我也对答案感兴趣.

(对于这种做法的一个好的论据也是受欢迎的,如果实施此验证会出现新的问题;但是,这在其他语言中似乎是常见的,所以我怀疑这是一件坏事要想)

javascript validation jquery

29
推荐指数
3
解决办法
5万
查看次数

当输入文本字段达到最大长度时移动焦点

我有信用卡号码表格.该号码分为四个部分,就像真实的信用卡一样.

我想在表单中添加JavaScript品味,当用户在字段中键入四个字母时,焦点会自动转到下一个标签.但不是在最后一个标签.通过这样做,用户不必键入"tab"键来移动焦点.

可以在标签中添加一些额外的类,ID或名称.

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>MoveFocus</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript" charset="utf-8">
     $(function() {
     // some code goes here.
    });
    </script>
</head>


<body>
  <form action="post.php" method="post" accept-charset="utf-8">
    <input type="text" value="" id="first" size="4" maxlength="4"/> -
    <input type="text" value="" id="second" size="4" maxlength="4"/> -
    <input type="text" value="" id="third" size="4" maxlength="4"/> -
    <input type="text" value="" id="fourth" size="4" maxlength="4"/>
    <p><input type="submit" value="Send Credit Card"></p>
  </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript usability jquery javascript-events

24
推荐指数
5
解决办法
7万
查看次数