Я создал форму с haml, и я просто хочу оптимизировать этот конструктор jsonForm.
Ниже приведен образец формы, который я создал с помощью справочного документа:
https://github.com/joshfire/jsonform
$('form').jsonForm({
schema: {
name: {type: 'string', title: 'Name', required: true},
age: {type: 'number', title: 'Age', required: true},
choice: {type: 'string',title: 'Title', 'enum': ['choice-1','choice-2','choice-3']}
},
onSubmit: function (errors, values) {
if (errors) {
$('#res').html('<p>I beg your pardon?</p>');
}
else {
$('#res').html('<p>Hello ' + values.name + '.' +
(values.age ? '<br/>You are ' + values.age + '.' : '') +
'</p>');
}
}
});
Но мне также нужно получить эти ценности во всем мире.
Как я могу это сделать?
Один из способов - сериализовать форму в массиве с помощью вспомогательных методов jQuery, а затем преобразовать массив в формат JSON. Я создал здесь скрипку:
http://jsfiddle.net/kamatanay/fchgS/
HTML:
<form></form>
<button id="theButton">Try</button>
Javascript:
$("#theButton").click(function(){
var dataJson = {};
$($("form").serializeArray()).map(function(){
dataJson[this.name] = this.value;
});
console.log(dataJson);
});
$('form').jsonForm({
schema: {
name: {
type: 'string',
title: 'Name',
required: true
},
age: {
type: 'number',
title: 'Age'
}
},
onSubmit: function (errors, values) {
if (errors) {
$('#res').html('<p>I beg your pardon?</p>');
}
else {
$('#res').html('<p>Hello ' + values.name + '.' +
(values.age ? '<br/>You are ' + values.age + '.' : '') +
'</p>');
}
}
});
Я надеюсь, что это поможет!