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 或会话变量吗?

4

2 回答 2

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> 
于 2012-07-05T14:55:47.783 回答
0

您可以使用 jQuery.cookie 插件

它的使用非常简单。

要设置 cookie:

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

为了得到一个cookie,我想只是:

$.cookie('cookieName');

有一个选项可以让 cookie 持续一个会话,而不是上面过期的天数。

于 2012-07-05T15:01:57.553 回答