Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON模式创建表单,如何全局获取表单值?_Javascript_Jquery_Json_Jquery Ui_Getjson - Fatal编程技术网

Javascript 从JSON模式创建表单,如何全局获取表单值?

Javascript 从JSON模式创建表单,如何全局获取表单值?,javascript,jquery,json,jquery-ui,getjson,Javascript,Jquery,Json,Jquery Ui,Getjson,我已经用haml创建了表单,我只想用这个JSONFormBuilder进行优化 以下是我使用参考文档创建的示例表单: $('form').jsonForm({ 模式:{ 名称:{type:'string',title:'name',必需:true}, 年龄:{type:'number',title:'age',必填项:true}, 选项:{type:'string',title:'title',enum':['choice-1','choice-2','choice-3']} }, onSub

我已经用haml创建了表单,我只想用这个JSONFormBuilder进行优化

以下是我使用参考文档创建的示例表单:

$('form').jsonForm({
模式:{
名称:{type:'string',title:'name',必需:true},
年龄:{type:'number',title:'age',必填项:true},
选项:{type:'string',title:'title',enum':['choice-1','choice-2','choice-3']}
},
onSubmit:函数(错误、值){
如果(错误){
$('res').html('p>对不起?

); } 否则{ $('#res').html('Hello'+values.name+'.'+ (values.age?“
您是“+values.age+”:”)+ “

”); } } });
但我也需要在全球范围内获得这些价值观


如何做到这一点?

一种方法是使用jQuery助手方法将表单序列化为数组,然后将数组转换为JSON格式。我在这里为它制作了一把小提琴:

HTML:


尝试
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>');
          }
        }
      });
$(“#按钮”)。单击(函数(){
var dataJson={};
$($((“form”).serializeArray()).map(函数(){
dataJson[this.name]=this.value;
});
log(dataJson);
});
$('form').jsonForm({
模式:{
姓名:{
键入:“字符串”,
标题:“姓名”,
必填项:true
},
年龄:{
键入:“编号”,
标题:“年龄”
}
},
onSubmit:函数(错误、值){
如果(错误){
$('res').html('p>对不起?

); } 否则{ $('#res').html('Hello'+values.name+'.'+ (values.age?“
您是“+values.age+”:”)+ “

”); } } });
我希望这会有帮助

<form></form>

<button id="theButton">Try</button>
$("#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>');
          }
        }
      });