1

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

上記のコードの2行目。

4

6 に答える 6

2

jquery prop()を使用して、テキストボックスを無効にすることができます。

$("[id$=txtTemp]").prop("disabled", true); 

注:prop()は、jquery1.6以降でのみ使用できます。以前のバージョンを使用している場合は、代わりにattr()を使用できます。

$("[id$=txtTemp]").attr("disabled", "disabled"); 

編集

ASP.NETはコントロールのIDを壊す傾向があるため、ページ上でコントロールを見つけるには、次のようないくつかの異なる方法があります。

$('[id$=txtTemp]')
$('#<%= txtTemp.ClientID %>')

編集

コントロールがiframe内にある可能性があると思われるため、次のスタックオーバーフローの質問からこの解決策を見つけました: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;
于 2012-05-17T17:50:55.923 に答える
1

Jqueryにタグを付けたので、jqueryソリューションを提供できると思います。

if (some_condition)
{
  $('#_ctl21_m_txtTemp').attr('disabled','disabled');
}
于 2012-05-17T17:50:59.260 に答える
0

jQueryを使用している場合は、次のことができます

$('#<%= txtTemp.ClientID %>').attr("disabled", "disabled");

これにより、テキストボックスを移動した場合に適切なクライアントIDを取得できます。

于 2012-05-17T17:52:17.663 に答える
0

jQueryでは、document.getElementByIdを使用しません。これはまったく重要ではありません。

textBoxTemp = $('#_ctl21_m_txtTemp'); // weird name, by the way
textBoxTemp.attr('disabled','disabled');
于 2012-05-17T17:52:39.847 に答える
0

http://www.w3schools.com/tags/att_input_disabled.aspによると

構文は次のようになります

textBoxTemp.disabled="disabled"  

あなたはそれを試してみることができます。

于 2012-05-17T17:54:50.460 に答える
0

これがjQueryとプレーンな古いJavascriptのどちらで必要かはわかりませんが、ここでは両方にあります。

Javascript

(おそらく、無効ではなく読み取り専用属性を探しています)

var textBoxTemp = document.getElementById('_ctl21_m_txtTemp');
textBoxTemp.readonly = true;

jQuery

$('#_ctl21_m_txtTemp').attr('readonly',true);
于 2012-05-17T17:55:12.527 に答える