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,9 +1,10 @@
{% from "components/icon.html" import Icon %} {% from "components/icon.html" import Icon %}
{% macro OptionsInput(field, inline=False) -%} {% macro OptionsInput(field, inline=False) -%}
<optionsinput name='{{ field.name }}' inline-template>
<div class='usa-input {% if field.errors %}usa-input--error{% endif %}'> <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}}
@ -27,6 +28,6 @@
</fieldset> </fieldset>
</div> </div>
</optionsinput>
{%- endmacro %} {%- endmacro %}