jqtransform jquery プラグインを使用して、フォーム要素のルック アンド フィールを変更しています。ただし、テキスト入力要素の幅をオーバーライドすることはできません-要素のスタイルをどのようにオーバーライドしても。このプロパティをオーバーライドする既知の方法はありますか?
前もって感謝します、
JP
jqtransform jquery プラグインを使用して、フォーム要素のルック アンド フィールを変更しています。ただし、テキスト入力要素の幅をオーバーライドすることはできません-要素のスタイルをどのようにオーバーライドしても。このプロパティをオーバーライドする既知の方法はありますか?
前もって感謝します、
JP
古い質問を復活させて申し訳ありませんが、現在の回答では必要以上に複雑になっています。
最も簡単な方法は、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);
}
理由は次のようです。
div
width
(js によって)style
属性にハードコーディングされているため、CSS でこれをオーバーライドしても機能しません。したがって、あなたの場合、jquery を使用することをお勧めします。
var myW = 300;
$("#elementId").css("width", myW);
$("#elementId").parents(".jqTransformInputWrapper").css("width", myW);
私は簡単な解決策を得ました.jqtransform使用宣言の直前にテキスト入力のサイズ属性を「構成」する必要があります.protektorからの引用は正しいです.jqueryによって指定された20のサイズ属性です.テキスト入力のデフォルトサイズを検出しています.したがって、基本的に、この方法で必要な場合は標準サイズを指定できます。
$("form input:text").attr("size", x);
$("form").jqTransform();
ここで、「x」はサイズであり、数値であり、ピクセルの測定値ではありません。jquery は、この数値に 10 を掛けたピクセルを計算することを思い出してください。入力テキストに 400px が必要な場合は、サイズを 40 に設定する必要があります。