我需要设置一个计数器来监控提交表单时生成的错误数量。错误由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 :(得分: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>
答案 1 :(得分:0)
您可以使用jQuery.cookie插件
它非常简单易用。
设置Cookie:
$.cookie('cookieName', val, {path: "/", expires: 1})
要获得一个cookie,我想只是:
$.cookie('cookieName');
有一个选项可以让cookie持续用于会话,而不是上面过期时显示的天数。