2013-07-15 129 views
-2

http://jsfiddle.net/ZKsjr/ 我正在使用此脚本,它能够正确验证输入字段,但我试图实现一个新功能,以便重置为原始值名称(名字)如果信息不正确已经被使用过(var reg =/^ [az,.'-] + $/i;)但是这需要在完成输入(模糊)之后发生,你会知道如何解决这个问题吗?文本输入验证

<!DOCTYPE html> 

<html> 

<head> 

    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <title> - jsFiddle demo</title> 
    <script type='text/javascript' src='//code.jquery.com/jquery-1.10.1.js'></script>  
    <link rel="stylesheet" type="text/css" href="/css/result-light.css"> 

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
function isfname(text){ 
    var reg = /^[a-z ,.'-]+$/i; 
    return reg.test(text); 
} 

$(".fname").keyup(function(e) { 
    var $test = $(this); 
    if (isfname($test.val())) { 
     $test.css("border-color", "rgb(140, 202, 165)"); 
     $test.css("background-color", "rgb(140, 202, 165)"); 
     $test.css("color", "black"); 

    }else{ 
     $test.css("background-color", "rgb(198, 95, 88)"); 
     $test.css("border-color", "rgb(198, 95, 88)"); 
     $test.css("color", "black"); 
    } 
}).blur(function(e) { 
    $(this).css("background-color", ""); 
    $(this).css("border-color", ""); 
    $(this).css("color", ""); 


}); 




});//]]> 

</script> 


</head> 

<body> 

    <input type="text"id="element_2_2" class="fname" maxlength="255" size="8" " value="First Name" 
onblur="if (this.value == '') {this.value = 'First Name';}" 
onfocus="if (this.value == 'First Name') {this.value = '';}" required/> 


</body> 

</html> 
+0

是的,PHP或其他一些服务器端脚本。 Javascript不适合验证,因为它可以被停用。检查[在这个问题中的警告](http://stackoverflow.com/q/3602530/938236) –

+0

我不会单独使用JavaScript,我遇到的问题是模糊函数将背景和边框颜色设置为它的默认值很好,但如果有人输入了无效数据,它不会重置默认值。 –

+1

@Francisco那么,只要您使用服务器端验证进行备份,客户端验证_is_很有用。 :) – doppelgreener

回答

0

入住.blur字段值和字段的值设置为First Name

就像这个...

.blur(function(e) { 
    $(this).css("background-color", ""); 
    $(this).css("border-color", ""); 
    $(this).css("color", ""); 
    if(!isfname($(this).val())) 
     $(this).val('First Name'); 
}); 

updated jsFiddle Demo

+0

我正在尝试在用户点击输入字段后执行此操作,您正在执行的操作是在键入时将值重设为名。 –

+0

查看我更新的答案和jsFiddle。 – neo108

+0

你是一个有天赋的个人感谢! –