Skip to content
This repository was archived by the owner on Feb 12, 2020. It is now read-only.

Commit 4c90b6e

Browse files
committed
add custom callback example to demo
1 parent 334edf9 commit 4c90b6e

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

demo/assets/demo.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/index.html

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,29 @@ <h1>vue-blob-forms</h1>
218218
<div class="error-message" v-if="formErrors('demo', 'multiselectField')">{{ formErrors('demo', 'multiselectField') }}</div>
219219
</td>
220220
</tr>
221+
<tr>
222+
<td>
223+
<label for="demo-beatleField">Custom</label>
224+
</td>
225+
<td>
226+
<input v-model.trim="fields.beatle" type="text" maxlength="50" required name="beatleField" data-validation-callback="validateBeatlesMovie" placeholder="Enter a Beatles movie." id="demo-beatleField" />
227+
</td>
228+
<td>
229+
<span v-if="formTouched('demo', 'beatleField')">Yes</span>
230+
<span v-else class="fg-black-light">No</span>
231+
</td>
232+
<td>
233+
<span v-if="formChanged('demo', 'beatleField')">Yes</span>
234+
<span v-else class="fg-black-light">No</span>
235+
</td>
236+
<td>
237+
<span v-if="formValid('demo', 'beatleField')" class="fg-green">Yes</span>
238+
<span v-else class="fg-red">No</span>
239+
</td>
240+
<td>
241+
<div class="error-message" v-if="formErrors('demo', 'beatleField')">{{ formErrors('demo', 'beatleField') }}</div>
242+
</td>
243+
</tr>
221244
<tr v-if="showingToggle">
222245
<td>
223246
<label for="demo-toggLefield">Toggled</label>

src/js/demo.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ var app = new Vue({
1414
el: '#vue-app',
1515
data: {
1616
fields: {
17+
beatle: 'Yellow Submarine',
1718
date: '2020-01-01',
1819
email: '',
1920
number: 0,
@@ -29,8 +30,24 @@ var app = new Vue({
2930
numMin: 1,
3031
numMax: 10,
3132
showingToggle: false,
33+
beatlesMovies: [
34+
"aharddaysnight",
35+
"help",
36+
"magicalmysterytour",
37+
"yellowsubmarine",
38+
"letitbe",
39+
]
3240
},
3341
methods: {
42+
// See if a film is part of the Beatles' catalogue or not.
43+
validateBeatlesMovie: function(film) {
44+
film = (film + '').trim().toLowerCase().replace(/[^a-z]/g, '');
45+
if (this.beatlesMovies.indexOf(film) !== -1) {
46+
return true;
47+
}
48+
49+
return 'A valid Beatles movie title is required.';
50+
}
3451
},
3552
});
3653

0 commit comments

Comments
 (0)