Emit field change event for options inputs

This commit is contained in:
Patrick Smith 2018-08-10 10:53:13 -04:00
parent 90240c19af
commit 687af77e33
3 changed files with 40 additions and 21 deletions

View File

@ -0,0 +1,16 @@
export default {
name: 'optionsinput',
props: {
name: String
},
methods: {
onInput: function (e) {
this.$root.$emit('field-change', {
value: e.target.value,
name: this.name
})
}
}
}

View File

@ -1,12 +1,14 @@
import classes from '../styles/atat.scss' import classes from '../styles/atat.scss'
import Vue from 'vue/dist/vue' import Vue from 'vue/dist/vue'
import optionsinput from './components/options_input'
import textinput from './components/text_input' import textinput from './components/text_input'
const app = new Vue({ const app = new Vue({
el: '#app-root', el: '#app-root',
components: { components: {
textinput optionsinput,
textinput,
}, },
methods: { methods: {
closeModal: function(name) { closeModal: function(name) {

View File

@ -1,32 +1,33 @@
{% from "components/icon.html" import Icon %} {% from "components/icon.html" import Icon %}
{% macro OptionsInput(field, inline=False) -%} {% macro OptionsInput(field, inline=False) -%}
<div class='usa-input {% if field.errors %}usa-input--error{% endif %}'> <optionsinput name='{{ field.name }}' inline-template>
<div class='usa-input {% if field.errors %}usa-input--error{% endif %}'>
<fieldset class="usa-input__choices {% if inline %}usa-input__choices--inline{% endif %}"> <fieldset v-on:change="onInput" class="usa-input__choices {% if inline %}usa-input__choices--inline{% endif %}">
<legend> <legend>
{{ field.label | striptags}} {{ field.label | striptags}}
{% if field.description %} {% if field.description %}
<span class='usa-input__help'>{{ field.description | safe }}</span> <span class='usa-input__help'>{{ field.description | safe }}</span>
{% endif %} {% endif %}
{% if field.errors %}
{{ Icon('alert') }}
{% endif %}
</legend>
{{ field() }}
{% if field.errors %} {% if field.errors %}
{{ Icon('alert') }} {% for error in field.errors %}
<span class='usa-input__message'>{{ error }}</span>
{% endfor %}
{% endif %} {% endif %}
</legend>
{{ field() }}
{% if field.errors %}
{% for error in field.errors %}
<span class='usa-input__message'>{{ error }}</span>
{% endfor %}
{% endif %}
</fieldset>
</div>
</fieldset>
</div>
</optionsinput>
{%- endmacro %} {%- endmacro %}