2010-02-19 205 views
2

在我的應用程序中,我需要禁用按鈕,一旦它被點擊,以便用戶不應單擊多次。應用程序是MVC ASP.NET我已經在普通的asp.net應用程序中完成了這項工作。 我嘗試下面的代碼行,但它不工作單擊按鈕後禁用按鈕

在此先感謝

編輯 我怎樣才能實現這個使用JavaScript?

+0

你似乎有asp.net mvc的缺乏瞭解。查看http://www.asp.net/(S(pdfrohu0ajmwt445fanvj2r3))/learn/mvc/上的一些視頻。 – 2010-02-19 04:22:43

回答

1
<button type="button" onclick="this.disabled = 'disabled';">Click Me!</button> 

雖然Button Web控件呈現爲提交:

<input type="submit" onclick="this.disabled = 'disabled';" value="Submit" /> 
+1

抱歉,它不會在MVC應用程序中工作。您可以在ASP.NET應用程序中執行此操作,但不能在MVC中執行 – batwadi 2010-02-20 03:17:45

+0

@prakash:無論ASP.NET還是ASP.NET-MVC,這兩種方法都可以工作。你能發佈你試過的東西嗎? – 2010-02-20 05:05:57

+0

沒有你嘗試在MVC ASP.NET它不會工作,請檢查 – batwadi 2010-02-24 05:29:26

0

你使用jQuery來禁用或隱藏,甚至按鈕@prakash?

如果你的按鈕的ID是「btnClickMe」,那麼下面的jQuery將完成這項工作。

$("#btnClickMe").hide(); 

您還可以使用jQuery設置di​​sbaled屬性;

$("#btnClickMe").attr("disabled","disabled"); 

上面的一個未經測試,但應該工作。

+1

NUP它不工作..它禁用按鈕,但表單不提交 – batwadi 2010-02-24 05:32:10

5

我發現,IE8(我不確定其他版本的IE),你不能提交表單,如果你禁用點擊事件按鈕。所以我想出了一個替代解決方案。隱藏點擊的按鈕並放置一個新的禁用按鈕。下面的代碼:

$().ready(function() { 
    $("someButtonSelector").click(function() { 
    $(this).hide(); 
    $(this).after('<input type="button" disabled="disabled" value="' + $(this).val() + '" />'); 
    return true; 
    }); 
}); 
+0

謝謝,它爲我工作的解決方法! – 2013-03-06 13:21:56

3

你可以試試這個:

onclick="if (this.getAttribute('clicked') == '1') { return false; } else { this.setAttribute('clicked', '1'); }" 

它不會關閉任何東西,只是防止click事件是第一次點擊後。

+0

+1是一個偉大的和被低估的解決方案。國際海事組織,你不需要真正看到按鈕的禁用樣式。讓用戶儘可能多地點擊他們想要的次數。所有開發人員關心的是避免重複的帖子。 – oscilatingcretin 2014-03-17 18:14:06

0

我發現,如果你禁用甚至刪除按鈕或輸入元素,它會停止回調服務器,最簡單的方法來處理這是一個hide(),因爲你沒有刪除輸入的功能按鈕/任何

$('input_selector').click(function() { 
     $(this).hide(200/whatever); 
     $(this).before('<p>Waiting for server to respond?!?</p><br/>') 
    }); 

因爲它是一個隱藏的br是確保p標籤在它上面。 可能有更好的方法,我願意提供建議。

0

這工作得很好的歡迎,並很容易理解:

var myButton = $('input:submit'); 
var waitMessage = 'wait please...'; 
myButton.click(function() { 
    if (bottone.val() == waitMessage) { 
     return false; 
    }; 
    myButton.val(waitMessage); 
    console.log('iClicked'); // this line is for testing only, it can be removed. 
}); 
0

這是我的一個按鈕調用的MVC動作,然後自行禁用:

<button class="btn blue pull-right" onclick="location.href='@Url.Action("Index", "GetData", new { page = Model.PageNumber + 1, sortOrder = Model.CurrentSort, fromDate = Model.FromDateParam, toDate = Model.ToDateParam, terminatingpoint = Model.TerminationPointParam, SurecallNo = Model.SurecallNoParm, CallerID = Model.CallerIDParm, outcome = Model.OutcomeParm, pagesize = Model.PageSize })';this.disabled = 'disabled'" >Next ></button> 
0
var but = 1; 
function f() { 
    if(but == 1) { 
     alert("Hello World!"); 
     but = 0; 
    } 
} 

希望它幫助。

0

這將工作:

OnClientClick="if (this.getAttribute('clicked') == '1') { 
    return false; 
} else { 
    this.setAttribute('clicked', '1'); 
}"