2012-04-20 48 views
0

在页面重新加载/刷新/按下f5之后,是否可以保持红色输入文本(即,当电子邮件错误时)? 问题是,当我按f5或刷新页面时,输入文本颜色从红色变为默认黑色。 如果有人向我展示适当的代码,会很高兴。 Tnx提前!页面重新加载时如何在输入文本上保持红色/ jQuery

这是代码:

$(document).ready(function(){ 

    var form=$("#form"); 
    var email=$("#email"); 
    var emailVal="неправилен email адрес"; 

form.submit(function(){ 
    if(validateEmail()) {return true;} 
    else{return false;}; 
         }); 

email.keyup(function(){ 
    var a=$("#email").val(); 
    var match_e=/^[A-Za-z0-9]+[A-Za-z0-9_.-]+[A-Za-z0-9][email protected][A-Za-z0-9]+[A-Za-z0-9.-]+ [A-Za-z0-9]+.[a-z]{2,4}$/; 

    if(match_e.test(a)){email.css('color','#000');}}); 

function validateEmail(){ 
    var a=$("#email").val(); 
    var match_e=/^[A-Za-z0-9]+[A-Za-z0-9_.-]+[A-Za-z0-9][email protected][A-Za-z0-9]+[A-Za-z0-9.-]+[A-Za-z0-9]+.[a-z]{2,4}$/; 

    if(match_e.test(a)){ 
     email.css('color','#000'); 
     return true; 
    }else{ 
     email.val(emailVal).css('color','red'); 
     return false;} 
} 
}); 

或者还有一个建议。可能更好的选择是刷新返回其初始值文本,如value =“email”,并删除错误的消息。 既可以保留红色文字,也可以在刷新页面时删除它,这对我来说是可以接受的。

+0

添加一些代码,请 – Yorgo 2012-04-20 11:54:53

+0

肯定,只需1秒 – user1288338 2012-04-20 11:58:49

回答

1

注:对于这种事情发生,你应该是相当肯定的是,虽然重装,文本的价值仍然存在,这意味着你必须从服务器发送的值。

现在进行验证 使用validation plugin

<script src="dist/jquery.min.js"></script> 
<script src="dist/jquery.validate.js"></script> 

<script> 
    $(function() { 
     $(window).load(function() { 
      $('#your_form_id').valid(); 
     }); 
    }); 
</script> 
<style> 
    .error{ 
     color:red; 
    } 
</style> 

<形式ID = 'your_form_id' > <input name='txt' id='txt' class='email' value='YOUR DEFAULT VALUE'></input>
< /形式>

+1

Tnx fo r建议。 – user1288338 2012-04-20 14:03:40

+1

当我添加这段代码: $(window).load(function(){ $('#email')。val('EMAIL ADDRESS_'); }); 现在一切都OK了:)。 Tnx再次 – user1288338 2012-04-20 14:14:45

0

DOM应该在表单事件准备好之后再调用验证器函数。

0

为什么你不在validate页面后再次渲染? 这可以在ready事件中完成。阅读this

相关问题