2014-01-30 40 views
-2

我希望名称字段只应包含文本。验证名称字段仅包含文本

<html> 
<head></head> 
<body> 
    <form name="form1"> 
     Name <input type="text" name="fname"> 
     <input type="submit" value="Submit"> 
    </form> 
</body> 
</html> 

谁能告诉我如何使用HTML或Javascript做到这一点。

+2

在谷歌一个简单的搜索就足够了输入字段.. – user1428716

回答

1

使用这个表达式在JavaScript:/^[a-z]+$/i

WORKING DEMO

的Javascript:

var submit = document.getElementById("submit"); 
submit.addEventListener("click", checkInput, false); 

function checkInput(e){ 
    e.preventDefault(); 
    var pattern = /^[a-z]+$/i; 
    alert(pattern.test(document.getElementById('text').value)); 
} 
0

您可以测试是否有 “什么事” 删除字母字符之后。

<html> 
<body> 
<form name="form1" onsubmit="return checkform();"> 
    Name<input type="text" name="fname" id="fname"> 
    <input type="submit" value="Submit"> 
</form> 

<script> 
function checkform(){ 
    var fname=document.getElementById('fname').value; 
    if (fname.replace(/\w/g,'')!=''||fname==''){ 
    alert('invalid firstname!'); 
    return false; 
    } 
    return true; 
} 
</script> 
</body> 
</html> 
0

试试这个:

<script type="text/javascript"> 
function validate(){ 
    var allowedChars="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
    var n=form1.fname.value; 
    for(var i=0;i<n.length;i++){ 
     if(allowedChars.indexOf(n.charAt(i))==-1){ 
      return false; // contains other char 
     } 
    } 
    return true; //valid name 
} 
0

尝试像

var match_text = /[a-zA-Z]/; 
0

正则表达式试试这个var regx = /^[A-Za-z][-a-zA-Z ]+$/;

function validate_form(); 
{ 

    var regx = /^[A-Za-z][-a-zA-Z ]+$/; 

    var fname = document.getElementById('fname').value; 
    if(fname=="") 
    { 
     alert("Name is Blank"); 
     return false; 
    } 
    else if(!regx.test(fname)) 
    { 
     alert("name must contains character only"); 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 
0

模式文本框的检查必须用JavaScript或jQuery的做像在o中一样疗法回答,如果你想使用HTML5,你可以直接写:

<input type="text" name="fname" id="fname" pattern="[A-Za-z]+" /> 

(见“模式”在HTML5的属性,如果你有兴趣)。

+0

这在旧的浏览器would'nt工作。 –

+0

(注意:旧版浏览器,即IE不支持) –

+0

是不支持早期版本的IE和Safari,但我认为它们已经够老了。 – pxm

0

你可以调用这个函数来验证只含text--

function validate() 
    { 
    str = document.form1.fname.value; 
    var patt = new RegExp("^[a-zA-Z ]*$"); 
    var res = patt.test(str); 
    if(!res) 
    { 
     alert("do not match!"); 
     return false; 
    } 
    } 
+0

为什么使用'new RegExp'而不是正则表达式'/.../'? –

+0

使用正则表达式文字时,您需要从字符串中跳出反斜杠。这是我使用RegExp对象的原因。否则,可以使用两个中的任何一个来检查正则表达式。 –