2013-03-08 63 views
0

我試圖禁用模擬帳戶的選項卡式頁面的提交按鈕。不幸的是,每個菜單選項卡都有相同的按鈕ID - 'Mod0EditRecord'。我不能重命名按鈕ID,也不能使用class,因爲它是由在線數據庫呈現的。禁用演示提交按鈕

<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord"> 
<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord"> 
<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord"> 

我的第一個按鈕的屬性成功設置爲禁用如下

if (login == 'demo.account') 
{ 
document.getElementById('Mod0EditRecord').setAttribute("disabled","disabled"); 
document.write("<br><p style=\"text-align:left; padding-left:100px; font-size:10px;\">** Update button is disabled for the demo **</p>"); 
} 
else 
{ 
document.getElementById('Mod0EditRecord').removeAttribute("disabled"); 
} 

我正在尋找指導如何設置屬性其他兩個。

在此先感謝

回答

0

您可以使用JavaScript DOM操作庫像jQuery遍歷HTML節點,並添加類/改變ID,只要你喜歡。

如果你必須堅持特別是那些屬性,那麼你可以做這樣的事情在jQuery的:的document.getElementById的

$('input[name="Mod0EditRecord"]').eq(0).attr('disabled','disabled') 
//this is the first input, change .eq(index) to the value you need 
+0

謝謝Tony!這像一個魅力。 – Maverick 2013-03-08 14:57:04

0

返回值應該是一個數組。你可以遍歷它們。或者,如果您使用的是jQuery,您可以使用.next()方法來檢索其他兩個元素。

+1

謝謝devBinnooh您的回覆。不幸的是,我不認爲你的建議會起作用,因爲getElementById只返回第一個匹配元素 - 這是我原來的問題。如果按鈕是通過「class」而不是「id」指定的,那麼可以使用getElementsByName('Mod0EditRecord')並按照您的建議獲取數組。 – Maverick 2013-03-08 15:11:04

0

您不能使用document.getElementById,因爲它返回具有該ID的第一個元素。如果你使用的是VanillaJS,我不會用jQuery,因爲僅僅爲這個功能下載一個庫是非常沒用的。

這就是你要去做的事情:用document.getElementsByTagName得到所有input -types,檢查它是否是從type submitdisable那。

var inputs = document.getElementsByTagName('input'); 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type === "submit") { 
     var submitbtn = inputs[i]; 
     submitbtn.setAttribute("disabled", "disabled"); 
    } 
} 

JSFiddle

+0

謝謝MarcoK。我同意這是一個輕量級的解決方案。我的網頁上已經有Jquery用於其他事情了。所以我最終使用了Tony的解決方案。但如果我沒有,我寧願你的。 – Maverick 2013-03-08 14:59:05