我试图阻止系统用户在Oracle ApEx中不按两次“提交”按钮,但我不确定如何使用jQuery来定位以下代码,即:
<a href="javascript:doSubmit('MY_SUBMIT')">
<img border="0" id="MS_BTN" alt="Submit Request" src="submit_btn.gif">
</a>
我基本上想确保所有必需的表单验证都已通过,当用户按下“提交”按钮时,我想在按下后立即隐藏按钮。
我尝试了以下代码,因为我不能使用src值,即:
$("a:contains('MY_SUBMIT')").hide();
但这不起作用。
有人可以帮助我如何将此按钮添加到onclick事件中,并且基本上在成功初始点击时隐藏了用户的这个按钮吗?
感谢。
答案 0 :(得分:7)
以下是如何使用jQuery执行此操作的示例:
HTML:
<a id="mySubmit" href="#">
<img border="0" alt="Submit Request" src="submit_btn.gif">
</a>
代码(在文档加载后运行):
$("#mySubmit").click(function(event) {
$(this).hide();
// do other stuff here
return(false);
});
并且,一个工作示例:http://jsfiddle.net/jfriend00/CtpLU/
或者,您只能使用图片而不是<a>
标记来执行此操作:
<img id="mySubmit" border="0" alt="Submit Request" src="submit_btn.gif">
$("#mySubmit").click(function(event) {
$(this).hide();
// do other stuff here
return(false);
});
除了隐藏按钮之外的其他可能的解决方案是:
答案 1 :(得分:3)
也许设置一个在首次点击链接时会发生变化的全局变量
var clicked = false;
function doSubmit(){
if(clicked) return;
clicked = true;
// all of your code //
clicked = false;
}
答案 2 :(得分:1)
为锚标记提供一些ID,然后您可以使用以下代码
$('#anchorTagId').unbind('click.submit').bind('click.submit', function (){
$(this).unbind('click.submit');
$(this).hide();
doSubmit('MY_SUBMIT');
});
希望这有帮助。
感谢。
答案 3 :(得分:0)
最好的办法是在<a>
元素中添加一个ID,否则以某种方式将图像父目标定位:
$("img[src='submit_btn.gif']").click(function() {
$(this).parent().hide();
});
理论上任何属性都可以成为目标,甚至是“alt”属性。