防止多次点击链接 [英] Prevent multiple clicks on link

查看:76
本文介绍了防止多次点击链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码将评分提交到php表单,但是我可以多次单击链接来为同一用户提供很多评分,我想在用户单击一次后禁用点击.

I have the following code that submits a rating to a php form, however I am able to click multiple times on the link to give lots of ratings from the same user, I want to disable clicks after the user has clicked once.

var clicked = false;

var ratingAction = {
	
		'a.rater' : function(element){
			element.onclick = function(){
			if (!clicked)
			{
				clicked = true;
			}
			else
			{
				alert('You can only rate once!');
				return false;
			}
			
			var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
			var parameterList = new Array();

			for (j = 0; j < parameterTokens.length; j++) {
				var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
				var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
				parameterList[parameterName] = parameterValue;
			}
			var theratingID = parameterList['q'];
			var theVote = parameterList['j'];
			var theuserIP = parameterList['t'];
			var theunits = parameterList['c'];
			
			//for testing	alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false;
			sndReq(theVote,theratingID,theuserIP,theunits); return false;		
			}
			
        		
		
		
        
		
	};
Behaviour.register(ratingAction);



这是我的链接的写法



Here is how my link is written

$rater.='<li><a href="functions/db2.php?j='.$ncount.'&q='.$id.'&t='.$ip.'&c=5" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';



我在php中进行了检查,该php从数据库中读取数据,以查看用户是否已进行评级,但是该检查仅在用户单击,等待页面处理然后尝试再次单击时才有效.



I have a check in php that reads from the database to see if the user has made a rating already but this check only works if a user clicks, waits for the page to process and then tries to click again. Multiple clicks in a quick succession will submit multiple entries.

推荐答案

1"); onclick ="sndReq('j = 1& q = 2& t = 127.0.0.1& c = 5'); var parameterTokens = parameterString.split(" ); // onclick ="sndReq('j = 1,q = 2,t = 127.0.0.1,c = 5' ); var parameterList = Array (); for (j = 0 ; j< parameterTokens.length; j ++){ var parameterName = parameterTokens [j] .replace(/(.*)=.*/,"
1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5'); var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5'); var parameterList = new Array(); for (j = 0; j < parameterTokens.length; j++) { var parameterName = parameterTokens[j].replace(/(.*)=.*/, "


1"); // j var parameterValue = parameterTokens [j] .replace(/.*=(.*)/,"
1"); // j var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "


1"); // 1 parameterList [parameterName] = parameterValue; } var theratingID = parameterList [' q' ]; var theVote = parameterList [' j' ]; var theuserIP = parameterList [' t' ]; var theunits = parameterList [' c' ]; // 用于测试警报('sndReq('+ theVote +','+ theratingID +','+ theuserIP +','+ theunits +')');返回false; sndReq(投票,评级ID,用户IP,单位); 返回 ; } }; 行为.register(ratingAction);
1"); // 1 parameterList[parameterName] = parameterValue; } var theratingID = parameterList['q']; var theVote = parameterList['j']; var theuserIP = parameterList['t']; var theunits = parameterList['c']; //for testing alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false; sndReq(theVote,theratingID,theuserIP,theunits); return false; } }; Behaviour.register(ratingAction);



这是我的链接的写法



Here is how my link is written


这篇关于防止多次点击链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆