簡體   English   中英

使用javascript控制文本框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM