2013-02-23 65 views
3

我需要在按下後刪除按鈕點擊事件。 如何編輯該功能,以便每當它被點擊時,它被禁用,然後運行url,或反之亦然。如何使用onclick javascript函數禁用按鈕?

<form id="edit" action="" method="post"> 
    <input type="submit" name="button" onclick="this.value='test...'; MyFunction();" id="1" class="button blue" value="Submit"> 
</form> 
<script> 
    function MyFunction() { 
     var url = "editing.php"; 
     document.getElementById("edit").setAttribute('action', url); 
     return false; 
    } 
    $(".blue").click(function(){ 
     $(".blue").removeClass("disabled"); 
     $(this).addClass("disabled"); 
    }); 
</script> 

回答

-1
document.getElementById('1').setAttribute('disabled', 'disabled'); 
+0

元素ID不能以數字開頭;) – BenM 2013-02-24 09:47:49

1

只需設置disabled屬性

$('.blue').attr('disabled', 'disabled'); 

JSFiddle


由於@doppelgreener指出,prop在這裏同樣有效

$('.blue').prop('disabled', true); 

JSFiddle

+0

'prop()'應該用在這裏而不是'attr()'。請參閱:[prop vs attr](http://stackoverflow.com/q/5874652/254830)。爲了改變狀態,道具是適當的。 – doppelgreener 2015-02-06 00:46:01

2
$(".blue").click(function(){ 
    $(this).attr('disabled', true); 
}); 
+0

'prop()'應該用在這裏而不是'attr()'。請參閱:[prop vs attr](http://stackoverflow.com/q/5874652/254830)。爲了改變狀態,道具是適當的。 – doppelgreener 2015-02-06 00:45:06

1

您可以輕鬆地通過jQuery的使用attr()功能做到這一點:

$('.blue').click(function() { 
    $(this).attr('disabled', 'disabled'); 
}); 

順便說一句,我注意到你正在使用jQuery。爲什麼不 'jQuery的IFY' 你的整個代碼:

function MyFunction() { 
    var url = "editing.php"; 
    $("#edit").attr('action', url); 
    return false; 
} 

$(".blue").click(function(){ 
    $(this).addClass("disabled").attr('disabled', true); 
}); 
4

取出onclick,並做到這一點的正確方法:

<form id="edit" action="" method="post"> 
    <input type="submit" name="button" id="a1" class="button blue" value="Submit"> 
</form> 
<script type="text/javascript"> 
$(function() { 
    $('#a1').on('click', function() { 
     $(this).val('test...').prop('disabled', true); 
     $("#edit").attr('action', 'editing.php'); 
     return false; 
    }); 
}); 
</script> 
1

爲了使.blue按鈕點擊一次。 jQuery的.one()方法正是您所需要的。這裏是documentation

$("#edit > .blue").one("click", function() { 
    //Code here will only run once. 
}); 

「如何修改,以便讓它在每次點擊,它就會被禁用,那麼函數運行的URL,或者反之亦然。」

我想你只想在這裏提交一次表格;所以:

<form id="edit" action="" method="post"> 
    <input type="submit" name="button" class="button blue" value="Submit" /> 
</form> 

<script> 
    //To make the form SUBMITTABLE ONLY ONCE: 
    $("#edit").one("submit", function() { 
     $(".blue").prop("disabled", true); //you can still set the button disabled if you like 
     $('#edit').attr('action', "editing.php"); //setting the action attribute here 
    }); 
</script> 

我不知道你的DOCTYPE是什麼,但如果它是HTML4;你不能有一個HTML元素的數字ID。 HTML5似乎允許這樣做。請參閱this post

Demo Fiddle here

0
<input type="submit" name="button" onclick="$(this).attr('disabled', 'disabled')"/> 
+0

請考慮編輯您的帖子,以添加更多關於您的代碼的解釋以及爲什麼它可以解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – Drenmi 2015-10-30 05:29:34

相關問題