jqtransform - установить ширину текстового поля - PullRequest
1 голос
/ 22 ноября 2010

Я использую плагин jqtransform jquery, чтобы изменить внешний вид моих элементов формы.Однако я не могу переопределить ширину элемента ввода текста - независимо от того, как я стилизую элемент, он переопределяется.Есть ли какой-нибудь известный способ переопределить это свойство?

Заранее спасибо,

JP

Ответы [ 3 ]

5 голосов
/ 04 июля 2011

Извините, что оживил старый вопрос, но текущий ответ делает его более сложным, чем необходимо.

Самый простой способ - просто установить HTML-атрибут size для вашего элемента ввода:

<%: 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);
 }
3 голосов
/ 22 ноября 2010

Похоже, причины:

  1. Каждый элемент формы имеет собственную упаковку div
  2. width жестко закодирован (js) в атрибуте style, поэтому переопределение в CSS не работает
  3. jqtransform не предоставляет идентификаторы элементов, поэтому вам нужно как-то установить его вручную или работать с классами

Итак, в вашем случае я бы предложил вам использовать jquery:

var myW = 300;
$("#elementId").css("width", myW);
$("#elementId").parents(".jqTransformInputWrapper").css("width", myW);
0 голосов
/ 11 августа 2012

У меня есть простое решение, вы должны «настроить» атрибут размера текстового ввода непосредственно перед объявлением использования jqtransform. Цитата из protektor верна, это 20 из атрибута размера, заданного jquery, он определяет размер по умолчанию:ввод текста и умножение на 10. Таким образом, вы можете указать стандартный размер, если хотите, таким образом:

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

где «x» - это размер, его число, не мера в пикселях, запомнитеjquery вычисляет пиксели, умножая это число на десять.Если вы хотите 400px для входного текста, вы должны установить размер на 40, и все готово.

...