[英]Control a text box using javascript
我正在嘗試使用javascript禁用頁面上的控件..我正在執行以下操作但無法成功完成..我缺少的任何內容,請指出..
if (some condition) {
var textBoxTemp = document.getElementById('_ctl21_m_txtTemp');
textBoxTemp.disabled = true;
}
我通過查看頁面的來源獲得了元素id。 在id中顯示了來源
_ctl21:m_txtTemp
我試過用這兩個
_ctl21:m_txtTemp和_ctl21_m_txtTemp
在上面的第二行代碼..
您可以使用jquery prop()來禁用文本框。
$("[id$=txtTemp]").prop("disabled", true);
注意:prop()僅在jquery 1.6之后可用。 如果您使用的是早期版本,則可以使用attr()代替:
$("[id$=txtTemp]").attr("disabled", "disabled");
編輯 :
由於ASP.NET傾向於破壞控件的ID,因此有幾種不同的方法可以在頁面上找到控件,例如:
$('[id$=txtTemp]')
$('#<%= txtTemp.ClientID %>')
編輯 :
由於您似乎認為您的控件可能位於iframe中,因此我從以下stackoverflow問題中找到了此解決方案: how-can-i-access-iframe-elements-with-javascript
function iframeRef( frameRef ) {
return frameRef.contentWindow ? frameRef.contentWindow.document : frameRef.contentDocument
}
var iframe = iframeRef( document.getElementById('iframeID') )
您現在可以通過以下方式搜索iframe內容,就像它是文檔一樣:
iframe.getElementByID('<%= txtTemp.ClientID %>').disabled = true;
你標記了Jquery,所以我想我可以提供一個jquery解決方案:
if (some_condition)
{
$('#_ctl21_m_txtTemp').attr('disabled','disabled');
}
如果你正在使用jQuery,你可以做到
$('#<%= txtTemp.ClientID %>').attr("disabled", "disabled");
這可確保您獲得正確的客戶端ID,以防您移動文本框。
使用jQuery,我不會使用document.getElementById,這完全沒有意義
textBoxTemp = $('#_ctl21_m_txtTemp'); // weird name, by the way
textBoxTemp.attr('disabled','disabled');
根據http://www.w3schools.com/tags/att_input_disabled.asp
語法應該是
textBoxTemp.disabled="disabled"
你可以嘗試一下。
我不知道你是不是想在jQuery或普通的舊Javascript中使用它,但這里有兩個:
使用Javascript
(您可能正在尋找readonly屬性而不是禁用)
var textBoxTemp = document.getElementById('_ctl21_m_txtTemp');
textBoxTemp.readonly = true;
jQuery的
$('#_ctl21_m_txtTemp').attr('readonly',true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.