2010-11-22 98 views
1

我正在使用jqtransform jquery插件來改變我的表單元素的外觀和感覺。但是,我無法覆蓋文本輸入元素的寬度 - 無論我如何設置它被覆蓋的元素。有沒有任何已知的方法來覆蓋這個屬性?jqtransform - 設置文本框寬度

由於提前,

JP

回答

3

好像其原因有:

  1. 每個表單元件具有它自己的包裝div
  2. widthstyle被硬編碼(由JS)屬性,所以在CSS中重寫此操作不起作用
  3. jqtransform不提供要素NT的ID,所以你必須將其設置手動或以某種方式與類

所以,你的情況我建議你操作使用一些jQuery的:

var myW = 300; 
$("#elementId").css("width", myW); 
$("#elementId").parents(".jqTransformInputWrapper").css("width", myW); 
+0

工作過,感謝! – 2010-11-22 14:07:46

5

對不起恢復一個老問題,但目前的答案使得它比必要的更加複雜。

最簡單的方法是簡單地設置「尺寸」 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); 
} 
+0

偉大的sollution! – mrGott 2011-08-27 12:22:45

+0

這似乎並不適用於最新版本,或者僅在使div比內容更寬時才起作用。我有一個內容非常長的下拉列表,並且將大小設置爲更小的寬度,即使在螢火蟲顯示select具有大小的屬性值時,也不會影響它的呈現方式。 – Levitikon 2011-10-11 19:18:32

+0

JQTransform僅將上述代碼塊用於文本框。 要使其適用於選擇列表(和/或其他輸入類型),您需要將代碼塊複製到JQTransform源代碼的其他部分:( – geoffreys 2011-10-12 00:08:24

0

我有一個簡單的解決方案,你必須在jqtransform使用聲明之前「配置」文本輸入的大小屬性,protektor的報價是正確的,是由jquery給出的size屬性的20,它檢測到默認大小的a文字輸入並相乘10。所以basicly,如果你想在這條路上,你可以給出一個標準尺寸:

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

其中「x」是尺寸,它的一個數字,是不是像素措施,記住jQuery的計算像素乘以這個數十。如果您希望輸入文字爲400像素,那麼您必須將尺寸設置爲40,然後完成。