如何“实时”检查输入的内容

2024-04-20

我正在开发一个网络表单,它已经设置了一个文本字段来接收预期的数值。如果此字段的内容不是数字,则表单不会提交,但没有放置错误消息来让用户知道他们填写了错误的此字段。

我的问题是......有没有办法实时检查输入内容并采取措施告诉用户他们没有正确填写?如果一切正常,我希望输入的边框为绿色,如果不是,则将边框设为红色并更改输入的默认文本以告诉他们我们只需要数字。

到目前为止,这大致是我的出发点......

HTML:

<input type="text" class="btn-blue" id="testing"></input>

JS:

$('#testing').attr('placeholder', 'Enter Amount');
var useramount = $("#testing").val();
if (useramount.match(/^\d+$/)) {
   $("#testing").css({border: "2px solid #33CC00 !important"});
} 
else {
  $("#testing").css({border: "2px solid #FF0000 !important"});
  $("#testing").innerHTML = "";
  $('#testing').attr('placeholder', 'Only Numbers Please');
}

我从之前提出的问题中借用了验证的基本原理:检查输入中是否仅输入了数值。 (jQuery) https://stackoverflow.com/questions/9086174/check-if-only-numeric-values-were-entered-in-input-jquery

任何帮助是极大的赞赏。


您可以使用input https://developer.mozilla.org/en-US/docs/Web/Events/input当用户在字段内键入内容时获取更改的事件。在更改事件上,您将获得与事件侦听器附加到的输入元素相对应的元素事件目标 https://developer.mozilla.org/en-US/docs/Web/API/Event/target。使用此参考,您可以使用以下方式获取输入的值value元素上的属性。

检索到该值后,您需要验证它实际上是数字。值得庆幸的是 jQuery 提供了一个方法叫做是数字 https://api.jquery.com/jQuery.isNumeric/这使我们能够做到这一点。

一旦我们确定该值确实是数字,您就可以应用一个类或只是将样式设置为您想要的样式。确保您还检查该值是否已被清空,以免用户感到困惑。

至于验证消息 - 当用户与所述元素交互时设置输入的值不是一个好主意。相反,我选择添加文本元素来表示将根据验证状态有条件地显示的消息。

// Add error message element after input.
$('#some-number').after('<span class="error-message">Please enter numbers only!</span>')

$('#some-number').on('input', function (evt) {
  var value = evt.target.value
  
  if (value.length === 0) {
    evt.target.className = ''
    return
  }

  if ($.isNumeric(value)) {
    evt.target.className = 'valid'
  } else {
    evt.target.className = 'invalid'
  }
})
input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  border: 1px solid black;
}

input.valid {
  border: 1px solid green;
}

input.invalid {
  border: 1px solid red;
}

input.invalid + .error-message {
  display: initial;
}

.error-message {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="some-number">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何“实时”检查输入的内容 的相关文章

随机推荐

  • 有没有一个javascript方法可以在字符串数组中查找子字符串?

    假设我的数组是 abcdefg hijklmnop 并且我正在查看 mnop 是否是该数组的一部分 我如何使用 javascript 方法来做到这一点 我尝试了这个 但它不起作用 var array abcdefg hijklmnop co
  • 我什么时候应该使用 Odbc、OleDb、SQLClient?有哪些权衡

    我从 SQLServer 数据库开始 所以看来我应该使用System Data SqlClient命名空间 但是 我们有可能关闭 SqlServer 数据库并转到 MySql 或 Oracle 因此 我提出了一套有关 Net 应用程序如何与
  • Visual Studio 2013 浏览器链接无法在 Firefox 中正常运行 - 引发异常

    刚才我在调试一个简单的 ASP NET MVC 应用程序时尝试使用 Firefox 27 0 1 进行浏览器链接 我有 Visual Studio Ultimate 2013 Update 1 这是浏览器链接仪表板 我尝试在剃刀视图中更改某
  • 正则表达式中的波形符运算符

    我想知道正则表达式中波浪线运算符的含义是什么 我有这样的声明 if preg match d 10 POST isbn warnings ISBN should be 10 digits 我发现这个文档解释了波浪号的含义 http en a
  • 如何向角度垫表添加边框半径?

    我正在努力使mat table边框为圆形 但它不起作用 试过这个 table width 100 border collapse collapse border radius 1em 如何实现这一目标 对我来说最简单的解决方案是隐藏某些元素
  • Laravel 1048 存储数据时列不能为 NULL

    当我尝试保存新联系人时 我收到1048 Column username cannot be NULL错误 很明显 这个错误的原因是空值username 但是我想让它工作而不将列设置为 NULL 或检查是否usernamePOST 数据为空
  • Boost Spirit 规则和语法中模板参数中的括号

    看着这个例子 http boost spirit com home articles qi example parsing a list of key value pairs using spirit qi 为了实现 Spirit 解析器
  • 复制期间的字节交换

    我需要有效地交换数组的字节顺序during复制到另一个数组中 源数组是某种类型 char short 或 int 因此所需的字节交换是明确的 并且将根据该类型进行 我的计划是通过多遍字节复制 short 为 2 int 为 4 来非常简单地
  • 如何使用 GCM 在 php 中向数百万 Android 设备发送通知

    我是一名新的 Android 应用程序开发人员 我正在使用 GCM 将 PHP 代码的通知发送到 Android 设备 我制作了所有设备 ID 的数组并发送 但问题是当我发送超过一千个设备时 我发现内部服务器错误 我的代码如下 functi
  • 未定义的方法`fog_host='

    当我尝试运行我的应用程序时 出现以下错误 config initializers carrierwave rb 4 未定义方法 fog host CarrierWave Uploader Base Class NoMethodError 这
  • JavaFX GridPane:如果内容被禁用且不可见则缩小

    如果 GridPane 行的内容既禁用又不可见 是否可以缩小该行 当我将节点设置为disable true和visible false时 单元格仍然占用空间 如果我有 8 行 并且只有第一行和最后一行可见 我不希望空行占用太多空间 好像只有
  • OpenGL 超级采样抗锯齿?

    在办公室 我们正在使用旧的 GLX Motif 软件 该软件使用 OpenGL 的 AccumulationBuffer 来实现保存图像的抗锯齿功能 我们的问题是Apple从其所有驱动程序中删除了AccumulationBuffer 从OS
  • 如何为所有用户设置所有 ulimit 不受限制?

    是的 我想删除all ulimits并将它们设置为unlimited 我该怎么做呢 谢谢 使用这样的东西 for opt in ulimit a sed s a z a zA Z 1 do ulimit opt ulimited done
  • Android中如何增加ScrollView的高度?

    嗨朋友们 我在用GridView里面一个ScrollView用于显示图像 在 GridView 中 我有 16 个动态添加的图像 但是ScrollView不显示全部 16 张图像 参见屏幕截图 我想要ScrollView显示整体GridVi
  • C#:运行 shell 命令时出现问题

    我试图让 PHP 解析器运行一个页面 然后将结果返回到我的服务器 但是当我通过代码运行该命令时 它什么也不返回 我知道该命令是正确的 因为如果我使用相同的路径手动运行它 它就可以正常工作 这是我的代码 var p new Process S
  • 线程 - 访问资源避免饥饿

    我知道这不是一个 作业助手网站 但最近几天我疯了 因为我必须实现对资源的访问以避免饥饿 但我不知道如何做到这一点 谁能帮助我提供一些应用程序示例或文档 分配是 资源可以由两种类型的进程使用 黑色和白色 当白色进程使用该资源时 黑色进程就不能
  • 自定义 Bootstrap 4 中的折叠过渡

    Bootstrap 4 使用该类 collapsing在打开 关闭 collapse element 时对它的宽度 高度进行动画处理 不幸的是 实际的更改是通过将宽度 高度作为内联样式添加到元素并在过渡的开始和结束处添加和删除类来实现的 因
  • php将所有链接转换为绝对url

    我正在用 php 编写一个网站爬虫 并且我已经有了可以从网站提取所有链接的代码 问题 网站使用绝对 URL 和相对 URL 的组合 示例 http 替换为 hxxp 因为我无法发布超链接 hxxp site com site com sit
  • 服务器<->设备的数据同步框架/算法?

    我正在寻求实现服务器和分布式客户端之间的数据同步 服务器上的数据源是mysql 上面是django 客户可能会有所不同 更新可以在客户端或服务器上进行 并且服务器和客户端之间的连接不可靠 例如 可以在断开连接的手机上进行更改 当手机再次连接
  • 如何“实时”检查输入的内容

    我正在开发一个网络表单 它已经设置了一个文本字段来接收预期的数值 如果此字段的内容不是数字 则表单不会提交 但没有放置错误消息来让用户知道他们填写了错误的此字段 我的问题是 有没有办法实时检查输入内容并采取措施告诉用户他们没有正确填写 如果