2012-04-20 62 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

相關問題