我正在使用 jqtransform jquery 插件来更改表单元素的外观。但是,我无法覆盖文本输入元素的宽度——无论我如何设置它被覆盖的元素的样式。有没有已知的方法来覆盖这个属性?
提前致谢,
J.P
我正在使用 jqtransform jquery 插件来更改表单元素的外观。但是,我无法覆盖文本输入元素的宽度——无论我如何设置它被覆盖的元素的样式。有没有已知的方法来覆盖这个属性?
提前致谢,
J.P
很抱歉重新提出一个旧问题,但当前的答案使它变得比必要的复杂。
最简单的方法是在输入元素上简单地设置“大小”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,它正在检测文本输入的默认大小并乘以 10。所以基本上你可以通过这种方式给出标准尺寸:
$("form input:text").attr("size", x);
$("form").jqTransform();
其中“x”是大小,它是一个数字,不是像素度量,记住 jquery 计算像素乘以这个数字乘以 10。如果你想在输入文本上设置 400 像素,那么你必须将大小设置为 40,然后你就完成了。