2012-07-05 35 views
0

我需要能夠設置一個計數器來監視表單提交時產生了多少錯誤。錯誤由css類.validmissing突出顯示。當顯示錯誤消息時設置計數器

所以,如果用戶對提交5個錯誤 - 如果用戶重新提交表單計數器設置爲1

然後獲取3個錯誤我的櫃檯需要增量2在同一個會話。

<script type="text/javascript"> 
    var ErrorCounter = 0; 
    $(document).ready(function() { 
    if($('.validmissing').length > 0) { 
     ErrorCounter = 1; 
    else{ 
    ErrorCounter = 0; 
      } 
    }); 
    </script> 

我需要設置cookie或會話變量嗎?

+0

您是否打算在第五行(+ =與plain =相反)使用'ErrorCounter + = 1;'? – cobaltduck 2012-07-05 14:52:35

+0

你可以發佈你的真實代碼嗎? – 2012-07-05 14:56:43

回答

0

你可以使用cookie或會話變量,但會更好的是使用輸入隱藏的領域,你有以前的計數器存儲。

HTML

<form method="get"> 
<input type="hidden" value="" name="counter" id="counter" /> 
.......... 
.......... 
</form> 

的Javascript

<script type="text/javascript"> 

//http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript 


function getParameterByName(name) 
    { 
     name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
     var regexS = "[\\?&]" + name + "=([^&#]*)"; 
     var regex = new RegExp(regexS); 
     var results = regex.exec(window.location.search); 
     if(results == null) 
     return 0; 
     else 
     return decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 




     var ErrorCounter = 0; 
     $(document).ready(function() { 
     $("#counter").val(getParameterByName("counter")); 
     if($('.validmissing').length > 0) { 
      ErrorCounter = $("#counter").val(); 
      ErrorCounter = 1*ErrorCounter + 1; 
      $("#counter").val(ErrorCounter); 
     }); 
</script> 
+0

謝謝我會嘗試,我試圖避免設置一個cookie - 但不能使用PHP所以將一個簡單的HTML隱藏領域工作? – user1010701 2012-07-05 15:55:52

+0

如果您沒有使用任何服務器端腳本,則alternet解決方案使用get方法。所以該參數可以在下一頁中找到。如果你不被允許使用獲取那麼沒有其他的方式,但使用cookie – gaurang171 2012-07-05 16:45:52

+0

答案修改沒有PHP或任何服務器端代碼。 – gaurang171 2012-07-05 16:52:56

0

可以使用jQuery.cookie插件

它非常簡單易用。

設置cookie:

$.cookie('cookieName', val, {path: "/", expires: 1}) 

爲了得到一個cookie,我認爲只是:

$.cookie('cookieName'); 

有讓最後一個會話cookie的選項,以及代替天數如上面過期所示。