2016-03-07 49 views
0

我有一個索引頁,我有一個創建按鈕。點擊創建按鈕後,它會打開一個名爲CreateStudent的新視圖,其中有多個bootstrapp選項卡。每個選項卡都包含一個按鈕。 索引視圖:按鈕如何使用jquery禁用按鈕

<div class="row"> 
    <div class="col-md-6 text-right"><a class="btn btn-default CreateMe" href="/MyProject/StaffCreate" role="button">Create New</a></div> 
</div> 

而且CreateStudent查看有一個按鈕LogOnAdd上的標籤之一:

<div class="row"> 
    <div class="col-md-8 text-right"> 
     <a class="btn btn-default LogonAdd" id="LogonAdd" href="#" role="button">Add </a> 
    </div> 
</div> 

使用下面的jQuery我一個試圖禁用LogOnAdd按鈕。

$('.CreateMe').click(function() { 
    $(".LogonAdd").attr("disabled", true); 
}); 

但上述jQuery代碼不起作用。該按鈕沒有被禁用。有人可以指導我在jQuery中犯了什麼錯誤。我正在使用vs 2010和mvc4。

我懷疑它是否無法找到控件。

+0

嘗試看看[這裏](http://stackoverflow.com/questions/15122526/disable-button-in-jquery/33696585),這個問題似乎是與你相似。 – prtnkl

+0

不是重複的,因爲它在同一頁上討論按鈕 – jubi

回答

2

試試這個,一類添加到您的錨標記,當您希望禁用它,並在CSS,你可以設置鼠標事件做就可以什麼都沒有,這裏

$('.CreateMe').click(function() { 
    $('.LogonAdd').addClass('disabledLink'); 
}); 

和CSS

a.disabledLink { 
    pointer-events: none; 
} 

要再次啓用鏈接,只需刪除該類。

$('.LogonAdd').removeClass('disabledLink'); 

編輯1:既然你說你要禁用一個按鈕,這是另一種看法,但處理在當前視圖中的禁用的東西,你可以做到這一點, 設置一個變量,也就是說,當按鈕必須是禁用或不是,在第二個視圖的頁面加載運行jquery腳本檢查此值並切換鏈接狀態。這裏有一個代碼段

$('.CreateMe').click(function() { 
    localStorage.setItem('disableLogOnAdd', true); //set 
}); 

在第二頁的文檔準備事件做到這一點,

if(localStorage.getItem('disableLogOnAdd')){ 
    $('.LogonAdd').addClass('disabledLink'); 
} 

注意,保持CSS規則如上面提到的,除去指針事件。

+0

錨不輸入,'disabled'布爾屬性上有沒有影響 –

+0

嘗試。但不適用於我的情況。請注意索引頁面中的CreateMe按鈕以及我需要禁用的按鈕位於另一個頁面中。這是問題嗎? – jubi

+0

@jubi檢查我更新的答案。嘗試了 –

1

disabled屬性只適用於<input>標籤。你不能用它錨定它不會起作用。

由於您使用的自舉disabled屬性將錨作品與role='button'應該true

$('.LogonAdd').attr("disabled","true"); 
//OR 
$('.LogonAdd').attr("disabled","disabled"); 

注:因爲你試圖關閉這不會在當前的環境中工作一個不在當前頁面中的元素。

所以,如果我真的瞭解其他按鈕是在不同的標籤在同一頁面。如果是這種情況,您可以默認禁用其他選項卡中的按鈕(在html代碼中),然後在第一個選項卡中單擊保存按鈕時啓用它們。

希望這會有所幫助。

+0

仍然啓用它。 – jubi

+0

錨點沒有輸入,'disabled'布爾屬性對它沒有影響 –

+0

我是在正確的方式找到按鈕。 ('。LogonAdd')。attr(「disabled」,「disabled」); – jubi