1

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

提前致谢,

J.P

4

3 回答 3

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);
 }
于 2011-07-04T12:43:55.200 回答
3

貌似原因如下:

  1. 每个表单元素都有自己的包装div
  2. 在属性width中是硬编码的(由js)style,因此在CSS中覆盖它不起作用
  3. jqtransform 不提供元素 ID,因此您必须以某种方式手动设置它或使用类进行操作

所以,在你的情况下,我建议你使用一些 jquery:

var myW = 300;
$("#elementId").css("width", myW);
$("#elementId").parents(".jqTransformInputWrapper").css("width", myW);
于 2010-11-22T05:30:58.527 回答
0

我有一个简单的解决方案,您必须在 jqtransform 使用声明之前“配置”文本输入的大小属性,protektor 的引用是正确的,是 jquery 给出的大小属性的 20,它正在检测文本输入的默认大小并乘以 10。所以基本上你可以通过这种方式给出标准尺寸:

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

其中“x”是大小,它是一个数字,不是像素度量,记住 jquery 计算像素乘以这个数字乘以 10。如果你想在输入文本上设置 400 像素,那么你必须将大小设置为 40,然后你就完成了。

于 2012-08-10T20:01:28.203 回答