1

jqtransform jquery プラグインを使用して、フォーム要素のルック アンド フィールを変更しています。ただし、テキスト入力要素の幅をオーバーライドすることはできません-要素のスタイルをどのようにオーバーライドしても。このプロパティをオーバーライドする既知の方法はありますか?

前もって感謝します、

JP

4

3 に答える 3

5

古い質問を復活させて申し訳ありませんが、現在の回答では必要以上に複雑になっています。

最も簡単な方法は、input 要素に 'size' HTML 属性を設定することです。

<%: Html.TextBoxFor(x=>x.SomeProperty, new{ size="4" })

次に、実行時に jqTransform が div 幅を計算します (jqTransform ソース ファイルから抽出)。

var inputSize=$input.width();
if($input.attr('size')){
       inputSize = $input.attr('size')*10;
       $input.css('width',inputSize);
 }
于 2011-07-04T12:43:55.200 に答える
3

理由は次のようです。

  1. 各フォーム要素には独自のラッピングがありますdiv
  2. width(js によって)style属性にハードコーディングされているため、CSS でこれをオーバーライドしても機能しません。
  3. jqtransform は要素 ID を提供しないため、何らかの方法で手動で設定するか、クラスで操作する必要があります

したがって、あなたの場合、jquery を使用することをお勧めします。

var myW = 300;
$("#elementId").css("width", myW);
$("#elementId").parents(".jqTransformInputWrapper").css("width", myW);
于 2010-11-22T05:30:58.527 に答える
0

私は簡単な解決策を得ました.jqtransform使用宣​​言の直前にテキスト入力のサイズ属性を「構成」する必要があります.protektorからの引用は正しいです.jqueryによって指定された20のサイズ属性です.テキスト入力のデフォルトサイズを検出しています.したがって、基本的に、この方法で必要な場合は標準サイズを指定できます。

$("form input:text").attr("size", x);
$("form").jqTransform();

ここで、「x」はサイズであり、数値であり、ピクセルの測定値ではありません。jquery は、この数値に 10 を掛けたピクセルを計算することを思い出してください。入力テキストに 400px が必要な場合は、サイズを 40 に設定する必要があります。

于 2012-08-10T20:01:28.203 に答える