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

如何调整弹窗的输入宽度

似乎没有任何选项

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

【问题讨论】:

标签: jquery jquery-ui x-editable


【解决方案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%;
    

    【讨论】:

      猜你喜欢
      • 2019-04-01
      • 2011-03-24
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 2014-05-29
      • 2018-01-28
      相关资源
      最近更新 更多