2011-08-08 10 views
0

数十(動的に変更可能な量)の入力フィールド(主にテキスト、いくつかのボタン)を持つページがあり、フォームが完了/送信/確定されると、編集することはできませんが、引き続き閲覧できます。私はこれを達成するためにやったことは無効と呼ばれる文字列を宣言することで、フォームが確定された場合、それはASP.NET入力タグ - カーソル:デフォルト

disabled="disabled=\"disabled\"" 

として設定され、そうでない場合はnullです。私はそれから、それらが無効になるように、入力タグに入れます。これは正常に動作します。ただし、カーソルはボタン上のポインタとテキストボックス上のテキストカーソルに変わります。どうすれば変更できますか?私は"などのタグ内の引用符をレンダリング

string disabled = (bool)ViewData["Finalized"] ? "disabled = \"disabled\" style=\"cursor:default\"" : null; 

にしようとしています。ディセーブル機能はうまく動作しますが、カーソルは影響を受けません。 文字列内の一重引用符(同じ結果)と、その中の文字列と二重引用符(エラー、文字数が多すぎます)を一重引用符で置き換えてみましたが、成功しませんでした。 これはこのようなことですか?それとも私は間違った方法でそれについて行きますか?

<input type="button" id="newtablebutton" class="pctbutton white" value="Add Table" onclick="showbox()" <%: disabled %> /> 
+0

は、私がページをオーバーレイ低不透明度のdivの簡単な修正で行くが、意味のあるすべてのだろう(私のテストではChromeはすでに無効入力にデフォルトのカーソルを使用することに注意してください)情報がスクロールするdivに含まれているため、スクロール機能が失われることはありません。 – yoozer8

+0

スタイルプロパティを設定する無効な要素のCSSクラスを作成する方法について説明します。 – Zachary

+0

@Zachary - それに運がない – yoozer8

答えて

1

出力はまさにこれですか?

無効にされた文字列は、要素に設定されているときにHTMLエンコードされています。理由は要素に設定する方法です。

変更この:これに

<input type="button" id="newtablebutton" class="pctbutton white" value="Add Table" onclick="showbox()" <%: disabled %> /> 

<input type="button" id="newtablebutton" class="pctbutton white" value="Add Table" onclick="showbox()" <%= disabled %> /> 

...あなたは良いことがあります。その理由は、<%:disabled%> htmlがエンコードされ、<%= disabled%>がそうでないためです。

0

カーソルを使用してみてください:なし

上記設定の結果として得られる出力は、入力は、この例の線に沿ってページ上で定義されている、

<input maxlength="4" type="text" name="input1" value="1" disabled = &quot;disabled&quot; style=&quot;cursor:default&quot;/> 

を言及する忘れていますカーソルを表示させたくないときに使用します。

てみてください、あなたの無効文字列にこの効果に何かを追加:

onfocus="javascript:if (this.disabled) this.style.cursor = 'none'; 
+0

カーソル:なしも無効です – yoozer8

+0

あなたはどのブラウザを使用していますか?ほとんどのブラウザでうまくいくはずです。 –

+0

Internet Explorer 8.通常の方法で(CSSまたはインラインスタイルの属性を使用して)タグとして適用されているときに機能しますが、jQuery経由で適用すると問題が発生します。 – yoozer8

0

あなたはまた、それが無効になっているとともに、あまりにも読み取り専用として入力を設定してみてください可能性があります。これがカーソルに影響を与えるかどうかはわかりませんが、そうかもしれません。 jQueryやJSのソリューションよりも簡単です。

+0

Readonlyでは、フィールド内のテキストの選択とコピー/ペーストが可能なので、カーソルはまだテキストカーソルです。 – yoozer8

0

疑問がある場合は、jQuery!

function hideCursor() { 
    $("input[disabled='disabled']").css("cursor","default"); 
} 

いつでも電話することができます。また

シンプルな生活にする:

function disableForm() { 
    $("#myForm input").attr('disabled', 'disabled'); 
    $("#myForm input").css("cursor","default"); 
} 

乾杯を!

+0

私はちょうどそのような機能を持っています。ページが表示されている間、フォームが無効になっているときに使用しますが、ロード時に無効にしたいと思います。(これはjQueryを使用できますが、無効にするために既に用意されていたので、可能であればカーソルを無効にしたいと思っています)。 – yoozer8

+0

$( "#myForm input")。css( "カーソル"、 "デフォルト"); これはカーソルを無効にします...あなたが実装している詳細なコードを投稿することができれば、私は少し混乱します。私はもっと助けることができます。 –

1

ビュー内のマークアップとともにサーバー変数をレンダリングするときは、MvcHtmlString.Createメソッドを使用する必要があります。レンダリング時に特殊文字をエンコードしません。これを試して問題を解決してください。

<input type="button" id="newtablebutton" class="pctbutton white" value="Add Table" onclick="showbox()" <%= MvcHtmlString.Create(disabled) %> /> 
0

各要素にスタイルを生成するのではなく、これをCSSに追加するのはどうですか?

input[disabled] 
{ 
    cursor: default; 
} 

関連する問題