Hallo,
ich habe am Wochenende versucht, basic.input um 'echte' Textfelder zu erweitern. Leider erfolglos. Laut diversen Quellen, die ich stundenlang 'ergoogelt' habe, sollte sich das Feld wie alle anderen auch im _update mit this.element.val(response[0]) befüllen lassen - aber egal, was ich mache, ich bekomme es nicht hin. response[0] ist da, ich kann es mir auch per alert ausgeben lassen, das Feld wird angezeigt - aber bleibt leer. Wahrscheinlich denke ich einfach mal wieder zu simpel ...
Frage: Hat schon jemand <textarea></textarea> in einem Widget im Einsatz?
Code bisher (text wird befüllt, textarea bleibt leer):
/tom
ich habe am Wochenende versucht, basic.input um 'echte' Textfelder zu erweitern. Leider erfolglos. Laut diversen Quellen, die ich stundenlang 'ergoogelt' habe, sollte sich das Feld wie alle anderen auch im _update mit this.element.val(response[0]) befüllen lassen - aber egal, was ich mache, ich bekomme es nicht hin. response[0] ist da, ich kann es mir auch per alert ausgeben lassen, das Feld wird angezeigt - aber bleibt leer. Wahrscheinlich denke ich einfach mal wieder zu simpel ...
Frage: Hat schon jemand <textarea></textarea> in einem Widget im Einsatz?
Code bisher (text wird befüllt, textarea bleibt leer):
Code:
<div style='height:200px; width:200px;'> {{ basic.input('t1', 'jahreskalender.Januar', 'text') }} {{ basic.input('t2', 'jahreskalender.Januar', 'textarea') }} </div>
Code:
{% macro input(id, item, type, min, max, step, format) %} {% if type|lower == 'textarea' %} <textarea {% if not id is empty %} id="{{ uid(page, id) }}"{% endif %} data-widget="basic.input" data-item="{{ item }}" type="textarea"></textarea> {% else %} <input{% if not id is empty %} id="{{ uid(page, id) }}"{% endif %} data-widget="basic.input" data-item="{{ item }}" {% if type|lower in ['time', 'timeflip'] %} type="text" data-role="datebox" data-datebox-mode="{{ type~'box' }}" data-use-focus="true" data-min-time="{{ min|default('false') }}" data-max-time="{{ max|default('false') }}" {% elseif type|lower in ['duration', 'durationflip'] %} type="text" data-role="datebox" data-datebox-mode="{{ type~'box' }}" data-use-focus="true" data-min-dur="{{ min|default('false') }}" data-max-dur="{{ max|default('false') }}" data-duration-step="{{ step }}" {% elseif type|lower in ['date', 'dateflip', 'datecal', 'dateslide'] %} type="text" data-role="datebox" data-datebox-mode="{{ (type == 'date' ? type : type|slice(4))~'box' }}" data-use-focus="true" data-min-days="{{ min|default('false') }}" data-max-days="{{ max|default('false') }}" data-stringformat ="{{ format|default('false') }}" {% else %} type="{{ type|default('text') }}" min="{{ min }}" max="{{ max }}" step="{{ step }}" {% endif %} data-clear-btn="false" /> {% endif %} {% endmacro %}
Code:
$.widget("sv.basic_input", $.sv.widget, { initSelector: 'input[data-widget="basic.input"][data-role!="datebox"]', _update: function(response) { var type = this.element.attr('type'); // alert(response[0]); if(type == 'textarea') this.element.val(response[0]); //geht nicht - kein val, value etc else this.element.val(response[0]); // geht problemlos }, [...]
Kommentar