2014-02-18 103 views
0

我有一个表单,用户可以在按钮单击时添加更多的输入框。 用户可以有他们想要的尽可能多的输入框。javascript/jquery输入验证

我不打算添加一个按钮来删除字段。

它们默认的输入框个数为2 假定用户决定增加3个,现在共有5

进行验证的,我想检查输入框为空或如果输入具有如下所有空格:“”无论空间有多少空间,只要它没有其他空间。 我可以通过检查长度来检查空的输入,但是如何检查后者? 是否有任何数量的连续空格的正则表达式? 谢谢!

PS:我使用jQuery使用jQuery移动

+0

你介意一个普通的JavaScript解决方案吗? – Schien

+0

@Schien标题说** javascript **/jquery和标签包含JavaScript,所以我会说去吧。 – rvighne

+0

是的,当然:) 我会看看我能用它做什么。 –

回答

1

您可以检查是否输入字段为空,通过检查其.value.length,因为你已经知道了。要检查它是否只包含空格,那么试试这个:(假定输入被存储在一个名为input变量)

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

Reference

+0

谢谢!标记为答案和+1以供参考。修剪()是我一直在寻找。 :) –

+1

请注意,.trim()方法在IE8及更早版本中不受支持。你可以使用jQuery的[trim](http://api.jquery.com/jQuery.trim/)。 –

1

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

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

我们要解决所有这些问题,以系统的方式:

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

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); 
+0

谢谢!但rvighne的答案是最接近的一个:) trim()是我所需要的,但看着你的答案,做一些快速谷歌它似乎也解决了这个问题。 此外,添加输入字段我使用.clone()从jquery 谢谢!如果我只能给+2 –