我有一个链接到页面的图像。这是一个进程按钮,最多可能需要 20 秒才能运行。我想防止用户多次推送它。
我将如何编写一个 Javascript,当按下按钮时,它会跟随超链接,但按钮的链接会禁用,并且图像会改变?
我有一个链接到页面的图像。这是一个进程按钮,最多可能需要 20 秒才能运行。我想防止用户多次推送它。
我将如何编写一个 Javascript,当按下按钮时,它会跟随超链接,但按钮的链接会禁用,并且图像会改变?
<script>
function buttonClicked()
{
document.getElementById('buttonImage').src = 'new-image.jpg';
document.getElementById('buttonId').disabled = true;
}
</script>
<a id="buttonId" href="next-page.html" onclick="return buttonClicked()"><img id="buttonImage" src="image1.jpg"></a>
从您的问题来看,听起来您的“按钮”是您单击的图像......如果这是真的,那么您可以使用以下内容:
<a id="my_link" href="/page_to_vist_onclick"><img id="my_image"></a>
那么你的javascript将是:
document.getElementById('my_link').onclick = function() {
document.getElementById('my_link').disabled = true;
document.getElementById("my_image").src='the_path_to_another_image';
};
单击时,从元素中删除href
属性。a
这是一个非常简单的
在你的 JS
function Create(){
document.write('<INPUT disabled TYPE="button" value="Click Me!">');
}
在您的 HTML 中
<INPUT TYPE="button" value="Click Me!" onclick="Create()">
如果您准备好使用 jQuery,那么这里有另一个解决方案。
$("selectorbyclassorbyIDorbyName").click(function () {
$("selectorbyclassorbyIDorbyName").attr("disabled", true).delay(2000).attr("disabled", false);
});
选择按钮并通过其 id 或文本或类...它只是在第一次单击后禁用并在 20 毫秒后启用
非常适合回发 n 将其放在母版页中,适用于所有按钮,而无需像这样隐式调用onclientClick
你可以用这个。
<script>
function hideme()
{
$("#buttonImage").hide();
}
</script>
<a id="buttonId" href="next-page.html" onclick="return hideme()"><img id="buttonImage" src="image1.jpg"></a>
如果您不想隐藏图像,请使用此..
$('#buttonImage').click(function(e) {
e.preventDefault();
//do other stuff when a click happens
});
这将阻止超链接的默认行为,即访问指定的 href。
我最终选择了以下内容:
$(document).ready(function() {
var isSubmitted = false;
$("#submit").click(function(e) {
if ( ! isSubmitted ) {
isSubmitted = true;
var src = $(this).attr("src").replace("gold","red");
$(this).attr("src", src);
} else {
e.preventDefault();
}
});
});
让我们制作一个 jquery 插件:
$.fn.onlyoneclick=function(o){
var options=$.extend({src:"#"},o);
$(this).click(function(evt){
var $elf=$(this);
if( $elf.data("submitted") ){
evt.preventDefault();
return false;
}
$elf.attr("src", typeof(options.src) == 'function' ?
options.src($elf.attr("src"))
: options.src
).data("submitted",true);
});
}
$(".onlyoneclick").onlyoneclick({
src : function( src ){
return src.replace("gold","red");
}
})
在应该只触发一次的任何按钮上:
<button ... class="onlyoneclick">tatatata... </button>
它很简单......只有一行代码:)
Onclick return false.