我正在使用jqtransform jquery插件来更改表单元素的外观。但是,我无法覆盖文本输入元素的宽度 - 无论我如何设置它所覆盖的元素的样式。有没有任何已知的方法来覆盖此属性?
提前致谢,
JP
答案 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)
似乎原因是:
div
width
在style
属性中被硬编码(通过js),因此在CSS中覆盖它不起作用所以,在你的情况下,我建议你使用一些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并完成。