2013-05-09 6 views
17

Как отрегулировать ширину входного всплывающего окнах-редактируемые -

не кажется, регулируя ширину поля ввода, как есть любой вариант для него в

http://vitalets.github.io/x-editable/docs.html#text

+0

Связанный: [Как я могу использовать столбцы сетки Bootstrap, чтобы установить ширину X -Editable input?] (Http://stackoverflow.com/questions/33022900/how-can-i-use-bootstraps-grid-columns-to-set-the-width-of-x-editable-inputs) – adamdport

ответ

4

мы можем использовать TPL внутри массива опций

array(
     'class'=>'editable.EditableColumn', 
     'name'=>'url', 
     'value'=>'getFullUrl("/").$data->url', 
     'id'=>'menu_id', 
     'headerHtmlOptions'=>array('text-align: center;'), 
     'htmlOptions'=>array(''), 
     'editable'=>array(
      'apply'=>true, 
      'name' => 'url', 
      'url'=>$this->createUrl('menuItems/XUpdate'), 
      'placement'=>'right', 
      'options'=> array('tpl'=>'<input type="text" style="width: 500px">'), 
     ), 

    ), 
25

вам может использовать inputclass вариант, чтобы обеспечить класс CSS, в котором можно добавить ширину для поля ввода, как

<a href="#" id="username" data-type="text" data-pk="1">awesome</a> 
<script> 
$(function(){ 
    $('#username').editable({ 
     url: '/post', 
     title: 'Enter username', 
     inputclass: 'some_class' 
    }); 
}); 
</script> 

И CSS:

.some_class{ 
    width: 240px; 
} 
+0

Это хороший ответ, но он не работает с «width: 100%», например.Чтобы он работал, вы должны переопределить некоторые стили вручную. – Sauleil

14

Если вы не хотите, чтобы изменить файл .css, вы можете установить стиль поля ввода х редактироваться путем изменения его шаблона:

<a href="#" id="username" data-type="text" data-pk="1">awesome</a> 
<script> 
    $(function(){ 
     $('#username').editable({ 
      url: '/post', 
      title: 'Enter username', 
      tpl: "<input type='text' style='width: 400px'>" 
     }); 
    }); 
</script> 

Обратите внимание на атрибут 'ТПЛ.

10

, если вы делаете это с angularjs xeditable вы можете просто использовать «е-стиль» вместо «стиль», как:

<a> e-style="width: 180px" editable-text="article.title" e-required="" </a> 

я не уверен, если это будет работать без angularjs ... но это стоит попробовать

+0

Простой ответ. Спасибо. –

20

Вы можете избежать пользовательских Javascript для каждого элемента на странице с помощью атрибута данных-inputclass:

<a href="#" id="username" data-inputclass="some_class" data-type="text" data-pk="1" >awesome</a> 

И CSS:

.some_class{ 
    width: 240px; 
} 
+0

Единственная модификация, которую я должен был сделать, заключалась в том, чтобы сделать CSS более «конкретным», чтобы он мог переопределить загрузочный CSS. ввод [тип = текст] .some_class { ширина: 60px; } – IsolatedStorage

1

Я сделал модификацию кода для управления шириной. Может быть, не изящное решение, но оно работает для меня. Приветствую! Вставить div в качестве руководства для получения ширины для .editableform .form-control class

Сделайте BKP перед внесением изменений!

бутстраповские-editable.js On Line 14 добавить этот код

var GLOBAL_aux_id_ei = 0; 

On Line 181 добавить этот код

var w = $('#div-guide-'+GLOBAL_aux_id_ei).width(); 
w = w - ((w * 20)/100); 
$('.editableform .form-control').css({"width":""+w+"px"}); 

On Line 628 добавить этот код и изменить существующий код

GLOBAL_aux_id_ei = GLOBAL_aux_id_ei + 1; 
$.fn.editableform.template = '<form class="form-inline editableform" id="frm-editable-'+GLOBAL_aux_id_ei+'">'+ 
'<div class="control-group">' + 
'<div>\n\ 
<div class="editable-input"></div><div class="editable-buttons"></div>\n\ 
</div>'+ 
'<div class="editable-error-block"></div>' + 
'</div>' + 
'</form>\n\ 
<div style="display:none;" id="div-guide-'+GLOBAL_aux_id_ei+'"></div>'; 

bootstrap-editable.css In .editable-co ntainer.editable-рядный класс по линии 158

width: 100%;