jqtransform - 设置文本框宽度

时间:2010-11-22 04:19:27

标签: jquery jqtransform

我正在使用jqtransform jquery插件来更改表单元素的外观。但是,我无法覆盖文本输入元素的宽度 - 无论我如何设置它所覆盖的元素的样式。有没有任何已知的方法来覆盖此属性?

提前致谢,

JP

3 个答案:

答案 0 :(得分:5)

很抱歉重温一个旧问题,但目前的答案使其变得更加复杂。

最简单的方法是在输入元素上设置'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);
 }

答案 1 :(得分:3)

似乎原因是:

  1. 每个表单元素都有自己的包装div
  2. widthstyle属性中被硬编码(通过js),因此在CSS中覆盖它不起作用
  3. jqtransform不提供元素ID,因此您必须以某种方式手动设置或使用类操作
  4. 所以,在你的情况下,我建议你使用一些jquery:

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

答案 2 :(得分:0)

我有一个简单的解决方案,你必须&#34;配置&#34;在jqtransform使用声明之前输入的文本的size属性,来自protektor的引用是正确的,是jquery给出的20的size属性,它检测文本输入的默认大小并乘以10。如果你想这样,你可以给出标准尺寸:

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

其中&#34; x&#34;是大小,它是一个数字,不是像素测量,记得jquery计算像素乘以这个数字十。如果您想在输入文本上使用400px,那么您必须将大小设置为40并完成。