x-editable - 调整输入字段的宽度

Posted

技术标签:

【中文标题】x-editable - 调整输入字段的宽度【英文标题】:x-editable - adjusting the width of input field 【发布时间】:2013-05-03 12:06:52 【问题描述】:

如何调整弹窗的输入宽度

似乎没有任何选项

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

【问题讨论】:

相关:How can I use bootstrap's grid columns to set the width of X-Editable inputs? 【参考方案1】:

您可以使用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;

【讨论】:

这是一个很好的答案,但它不适用于 'width: 100%' 例如。要使其正常工作,您必须手动覆盖一些样式。【参考方案2】:

您可以通过使用 data-inputclass 属性来避免为页面上的每个元素使用自定义 javascript

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

还有 CSS:

.some_class
   width: 240px;

【讨论】:

我必须对此进行的唯一修改是使 CSS 更“具体”,以便它可以覆盖引导 CSS。输入[类型=文本].some_class 宽度:60px; 【参考方案3】:

如果不想更改.css文件,可以通过更改模板来设置x-editable输入框的样式:

<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>

注意“tpl”属性。

【讨论】:

【参考方案4】:

如果您使用 angularjs xeditable 执行此操作,您可以使用“e-style”而不是“style”,例如:

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

我不确定在没有 angularjs 的情况下这是否可行……但值得一试

【讨论】:

最简单的答案。谢谢。【参考方案5】:

我们可以在选项数组中使用 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">'),
        ),

    ),

【讨论】:

您能否提及这里使用的是什么语言/框架?如果是纯JS,我认不出来。 OP 上的标签没有提到任何不寻常的东西。 @jcairney 这对我来说就像 Yii。【参考方案6】:

我在代码中进行了修改以控制宽度。也许不是优雅的解决方案,但它对我有用。你好! 包括添加一个 div 作为获取 .editableform .form-control 类的宽度的指南

在进行更改之前进行 BKP!

bootstrap-editable.js 在第 14 行添加此代码

var GLOBAL_aux_id_ei = 0;

在第 181 行添加此代码

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

在第 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 在第 158 行的 .editable-container.editable-inline 类中

width: 100%;

【讨论】:

以上是关于x-editable - 调整输入字段的宽度的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 4 - 调整输入字段的宽度

将输入字段的宽度调整为其输入

X-editable 自定义字段类型不尊重覆盖的默认值

Select2 字段宽度难以调整大小

如何在键入时使 UITextField 宽度调整为文本?

jQuery X-Editable:根据其他选择字段的值更新选择字段