X可编辑的自定义输入,其中包含注入的数据和下拉菜单

Meezaan-ud-Din

我正在尝试使用select下拉列表为X-editable创建一个自定义输入,其中将填充来自数据库的数据,而我需要以某种方式将这些数据注入到我的自定义输入对象中。

因此,为了缩小问题的范围,这是在通过JQuery加载页面后如何设置自定义对象:

$('#myRecord').editable({
            inputclass: 'input-large',
            showbuttons: 'bottom',
            value: {
                height: 123,
                width: 445,
                length: 222,
                name: jason hurley,
                measurement_unit: centimetres,
                weight: 230,
                injected_units: ['centimetres', 'metres'] // this is dynamic
            },
            display: function(v) {
            // Html here.
            }
       });

因此,基本上,我需要传递给此重量记录的一组度量单位,以便当X-Editable加载编辑UI时,我可以为用户提供一个选择下拉列表,以选择他们想要的选项。

问题是创建“可编辑” UI的代码位于我的inputs-ext对象中,就像此处的默认示例一样:https : //github.com/vitalets/x-editable/blob/master/src/inputs-ext/地址/address.js

我或者需要一种方法来访问传递到我的自定义输入对象内的values属性中的“ injected_units”值,或者需要一种将值注入其中的方法,以便可以在默认的tpl属性中使用它来呈现下拉菜单的正确选项。

有什么建议?

网络天空

如果您使用PHP从数据库中检索数据,则...

<?php
    $unitOfMeasurement = array('centimetres', 'metres', 'millimeter');
?>

$('#myRecord').editable({
            inputclass: 'input-large',
            showbuttons: 'bottom',
            value: {
                height: 123,
                width: 445,
                length: 222,
                name: jason hurley,
                measurement_unit: centimetres,
                weight: 230,
                injected_units: [
                <?php foreach ($unitOfMeasurement as $key=>$unit ) : ?>
                <?php echo "'".$unit."'".((count($unitOfMeasurement) == $key + 1)? '' : ','); ?>
                <?php endforeach; ?>
                ] // this is dynamic
            },
            display: function(v) {
            // Html here.
            }
       });

例子

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>X-editable starter template</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- bootstrap -->
    <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
    <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script> 
    <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>  
    <!-- x-editable (bootstrap version) -->
    <link href="http://cdnjs.cloudflare.com/ajax/libs/x-editable/1.4.6/bootstrap-editable/css/bootstrap-editable.css" rel="stylesheet"/>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/x-editable/1.4.6/bootstrap-editable/js/bootstrap-editable.min.js"></script> 
    <script>
$(function(){   
    var option = ['centimetres', 'metres'];
    $('#record').editable({
            inputclass: 'input-large',
            showbuttons: 'bottom',
            value: {
                height: 123,
                width: 500,
                length: 222,
                name: 'jason hurley',
                measurement_unit: 'measurement',
                weight: 230,
                injected_units: option // this is dynamic
                /*
                 or use php and create array in the server
                 injected_units: [
                <?php $unitOfMeasurement = array('centimetres', 'metres', 'millimeter'); ?>
                <?php foreach ($unitOfMeasurement as $key=>$unit ) : ?>
                <?php echo "'".$unit."'".((count($unitOfMeasurement) == $key + 1)? '' : ','); ?>
                <?php endforeach; ?>
                ] // this is dynamic
                 */
            },
            display: function(v) {
            // Html here.
            }
       });
});
(function ($) {
    "use strict";  
    var Record = function (options) {
        this.init('record', options, Record.defaults);
    };
    $.fn.editableutils.inherit(Record, $.fn.editabletypes.abstractinput);
    $.extend(Record.prototype, {    
        render: function() {
           this.$input = this.$tpl.find('input');
        },     
       value2str: function(value) {
           var str = '';
           if(value) {
               for(var k in value) {
                   str = str + k + ':' + value[k] + ';';  
               }
           }
           return str;
       },       
       str2value: function(str) {
           return str;
       },                              
       value2input: function(value) {
           if(!value) {
             return;
           }
           this.$input.filter('[name="name"]').val(value.name);         
           var arrayOption = value.injected_units;          
           for(var i=0; i<arrayOption.length; i++){
               $('#injected_units')
                .append($("<option></option>")
                .attr("value",arrayOption[i])
                .text(arrayOption[i])); 
           }
       },                     
       input2value: function() { 
           return {
              name: this.$input.filter('[name="name"]').val(), 
              injected_units: this.$input.filter('[name="injected_units"]').val(), 
           };
       },                    
       activate: function() {
            this.$input.filter('[name="name"]').focus();
       }       
    });
    Record.defaults = $.extend({}, $.fn.editabletypes.abstractinput.defaults, {
        tpl: '<div class="editable-record"><label><span>name: </span><input type="text" name="name" class="input-small"></label></div>'+
             '<div class="editable-record"><label><span>Measurement unit: </span><select id="injected_units" type="text" name="injected_units" class="input-small"></select></label></div>',

        inputclass: ''
    });
    $.fn.editabletypes.record = Record;
}(window.jQuery));
    </script>
  </head>
  <body>
    <div class="container">
      <br />
      <a href="#" id="record" data-type="record" data-pk="1">example</a>     
    </div>
  </body>
</html>

基于: https : //github.com/vitalets/x-editable/blob/master/src/inputs-ext/address/address.js

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

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SEO-使用href =“#”的下拉菜单

분류에서Dev

如何添加下拉菜单?

분류에서Dev

带有删除和通知通知的自定义arraylist

분류에서Dev

使用JavaScript从下拉菜单中更改背景颜色

분류에서Dev

使用Bootstrap 3下拉菜单作为上下文菜单

분류에서Dev

Laravel自定义变形

분류에서Dev

自定义tableViewCell中的NSTimer

분류에서Dev

如何使GIMP工具箱具有下拉菜单(如photoshop)?另外,如何更改初始屏幕的格式?

분류에서Dev

在IE中自定义“您最受欢迎的网站”?

분류에서Dev

使用GSON自定义反序列化枚举

분류에서Dev

带有自定义页面的新Relic插件

분류에서Dev

Android Studio无法识别自定义视图类

분류에서Dev

自定义非嵌套余烬路线的加载模板

분류에서Dev

Cordova / Phonegap自定义构建文件名

분류에서Dev

自定义水平滚动条逻辑

분류에서Dev

Excel 2010:使用图标列表作为自定义列表

분류에서Dev

jQuery中的CRUD(直接编辑和更新数据)

분류에서Dev

比较具有替代顺序的自定义类型的std :: tuple(或std :: pair)。是否可以插入自定义小于/比较功能?

분류에서Dev

带有Kingpin注释的Apple MapKit将自定义注释聚类

분류에서Dev

状态列表可绘制的自定义单选按钮未更改

분류에서Dev

Codeigniter查询结果返回带有setter的自定义结果对象

분류에서Dev

spring-boot不评估基于自定义百里香方言的标签

분류에서Dev

为自定义域配置Google App Engine SSL

분류에서Dev

在自定义排除条件下使用strip_tags

분류에서Dev

如何使用d3.domain / range拥有自定义域

분류에서Dev

如何仅对选定域使用自定义DNS服务器?

분류에서Dev

如何在自定义服务器上使用ember-cli并将其部署到Heroku?

분류에서Dev

如何在Windows 8中使用通过Microsoft键盘布局创建器创建的自定义键盘布局?

분류에서Dev

使用包含库中定义的JS函数,不会触发我的成功和错误回调。我的JS或他们的JS有问题吗?

Related 관련 기사

  1. 1

    SEO-使用href =“#”的下拉菜单

  2. 2

    如何添加下拉菜单?

  3. 3

    带有删除和通知通知的自定义arraylist

  4. 4

    使用JavaScript从下拉菜单中更改背景颜色

  5. 5

    使用Bootstrap 3下拉菜单作为上下文菜单

  6. 6

    Laravel自定义变形

  7. 7

    自定义tableViewCell中的NSTimer

  8. 8

    如何使GIMP工具箱具有下拉菜单(如photoshop)?另外,如何更改初始屏幕的格式?

  9. 9

    在IE中自定义“您最受欢迎的网站”?

  10. 10

    使用GSON自定义反序列化枚举

  11. 11

    带有自定义页面的新Relic插件

  12. 12

    Android Studio无法识别自定义视图类

  13. 13

    自定义非嵌套余烬路线的加载模板

  14. 14

    Cordova / Phonegap自定义构建文件名

  15. 15

    自定义水平滚动条逻辑

  16. 16

    Excel 2010:使用图标列表作为自定义列表

  17. 17

    jQuery中的CRUD(直接编辑和更新数据)

  18. 18

    比较具有替代顺序的自定义类型的std :: tuple(或std :: pair)。是否可以插入自定义小于/比较功能?

  19. 19

    带有Kingpin注释的Apple MapKit将自定义注释聚类

  20. 20

    状态列表可绘制的自定义单选按钮未更改

  21. 21

    Codeigniter查询结果返回带有setter的自定义结果对象

  22. 22

    spring-boot不评估基于自定义百里香方言的标签

  23. 23

    为自定义域配置Google App Engine SSL

  24. 24

    在自定义排除条件下使用strip_tags

  25. 25

    如何使用d3.domain / range拥有自定义域

  26. 26

    如何仅对选定域使用自定义DNS服务器?

  27. 27

    如何在自定义服务器上使用ember-cli并将其部署到Heroku?

  28. 28

    如何在Windows 8中使用通过Microsoft键盘布局创建器创建的自定义键盘布局?

  29. 29

    使用包含库中定义的JS函数,不会触发我的成功和错误回调。我的JS或他们的JS有问题吗?

뜨겁다태그

보관