inr*_*rob 7 javascript jquery double-submit-prevention
所以我有一个如下所示的提交按钮:
<a href="#" id="submitbutton"
onClick="document.getElementById('UploaderSWF').submit();">
<img src="../images/user/create-product.png" border="0" /></a>
Run Code Online (Sandbox Code Playgroud)
当我双击它时双重明显提交,问题是我将信息保存在数据库中,所以我会在那里发布信息,我不想要那样.这个上传器使用flash和javscript,这里有一小段代码与提交的东西相关(如果它有帮助)
$.fn.agileUploaderSubmit = function() {
if($.browser.msie && $.browser.version == '6.0') {
window.document.agileUploaderSWF.submit();
} else {
document.getElementById('agileUploaderSWF').submit();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
感谢你们.我感谢您的帮助.这是我自己无法做到的事情,因为我对js有这么一点经验而且我真的不知道该怎么做.谢谢.
Rai*_*sch 11
试试这个剪辑:
$('#your_submit_id').click(function(){
$(this).attr('disabled');
});
Run Code Online (Sandbox Code Playgroud)
编辑1
哦,在你的情况下,它是一个链接,没有提交按钮......
var submitted = false;
$.fn.agileUploaderSubmit = function() {
if ( false == submitted )
{
submitted = true;
if($.browser.msie && $.browser.version == '6.0') {
window.document.agileUploaderSWF.submit();
} else {
document.getElementById('agileUploaderSWF').submit();
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
编辑2
为简化此操作,请尝试以下操作
<!doctype html>
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
$(document).ready(function()
{
$('#yourSubmitId').click(function()
{
$(this).attr('disabled',true);
/* your submit stuff here */
return false;
});
});
//--><!]]>
</script>
</head>
<body>
<form id="yourFormId" name="yourFormId" method="post" action="#">
<input type="image" id="yourSubmitId" name="yourSubmitId" src="yourImage.png" alt="Submit" />
</form>??????????????????????????????????????
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用表单元素,例如<input type="image" />
,提交表单而不是普通链接.
这很好用!
看一下jQuery.post()来提交表单.
祝好运.
编辑3
这对我也很有用:
<!doctype html>
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
$(document).ready(function()
{
var agileUploaderSWFsubmitted = false;
$('#submitbutton').click(function()
{
if ( false == agileUploaderSWFsubmitted )
{
agileUploaderSWFsubmitted = true;
//console.log( 'click event triggered' );
if ( $.browser.msie && $.browser.version == '6.0' )
{
window.document.agileUploaderSWF.submit();
}
else
{
document.getElementById( 'agileUploaderSWF' ).submit();
}
}
return false;
});
});
//--><!]]>
</script>
</head>
<body>
<form id="agileUploaderSWF" name="agileUploaderSWF" method="post" action="http://your.action/script.php">
<input type="text" id="agileUploaderSWF_text" name="agileUploaderSWF_text" />
</form>??????????????????????????????????????
<a href="#" id="submitbutton"><img src="../images/user/create-product.png" border="0" /></a>??????????????????????????????????????
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助.
将以下内容添加到onclick
:
onclick="document.getElementById('submitbutton').disabled = true;document.getElementById('UploaderSWF').submit();"
Run Code Online (Sandbox Code Playgroud)
也就是说,您还必须在服务器端处理这种双重提交预防措施。