javascript/jquery 输入验证

Posted

技术标签:

【中文标题】javascript/jquery 输入验证【英文标题】:javascript/jquery input validation 【发布时间】:2014-03-17 13:04:49 【问题描述】:

我有一个表单,用户可以在单击按钮时添加更多输入框。 用户可以拥有任意数量的输入框。

我不打算添加用于删除字段的按钮。

他们默认的输入框数量是 2。 假设用户决定再添加 3 个,现在总共有 5 个。

为了验证,我想检查输入框是否为空,或者输入是否包含所有空格,例如:“”,无论有多少空格,只要它只有空格即可。 我可以通过检查长度来检查空输入,但是如何检查后者呢? 是否有任意数量的连续空格的正则表达式? 谢谢!

PS:我在 jQuery mobile 上使用 jQuery

【问题讨论】:

您介意纯 javascript 解决方案吗? @Schien 标题写着 javascript /jquery 并且标签包括 javascript 所以我会说去吧。 是的,当然 :) 我会看看我能用它做什么。 【参考方案1】:

如您所知,您可以通过检查其.value.length 来检查输入字段是否为空白。要检查它是否仅包含空格,请尝试以下操作:(假设输入存储在名为input 的变量中)

if (!input.value.trim().length) // oh noes! it's blank or whitespace-filled!

Reference.

【讨论】:

谢谢!标记为答案和 +1 以供参考。 trim() 是我想要的。 :) 请注意 .trim() 方法在 IE8 及更早版本中不受支持。你可以使用jQuery的trim。【参考方案2】:

您的问题有几个组成部分:

如何动态添加输入字段? 如何遍历这些字段并同时验证它们? 如何检查字段是否真的包含内容,而不仅仅是空值?

我们需要系统地解决所有这些问题:

从最简单的开始——检测空字符串:

if (value.replace(/\s/g,'')=='') //string is empty

接下来,动态添加输入字段:

var myinput=document.createElement('input');
document.body.appendChild(myinput);

//the trick here is to "remember" this element for later use
document.myinputs=[];
document.myinputs.push(myinput);

要检查所有输入字段,首先检查静态输入字段,然后循环遍历动态输入字段:

valid=true; //default to true unless detected otherwise
for (var i=0;i<document.myinputs.length;i++)
  var input=document.myinputs[i];
  if (input.value.replace(/\s/g,'')=='') valid=false;


alert(valid);

【讨论】:

谢谢!但 rvighne 的答案是最接近的 :) trim() 是我需要的,但看看你的答案并快速搜索一下它似乎也解决了这个问题。另外,在添加输入字段时,我使用了 jquery 中的 .clone() 谢谢!如果我能给 +2

以上是关于javascript/jquery 输入验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用javascript验证动态生成的输入框值

小吃店验证 MDL - Javascript/Jquery

将文本字段更新为 JSON 字符串 - Javascript/JQuery [重复]

任何 Javascript/Jquery 库来验证 SQL 语句?

Javascript / jQuery - 隐藏字段时禁用验证

使用 JavaScript / jQuery 进行简单的数字验证