Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Json - Fatal编程技术网

Javascript 从表单自定义属性动态创建JSON对象

Javascript 从表单自定义属性动态创建JSON对象,javascript,json,Javascript,Json,解析表单上的每个输入以生成下面的Json对象的最佳方法是什么?我不喜欢自定义属性,如果是更好更简单的方法,请分享 <form> <label>Address</label> <input type="text" name="address" data-label="Address" data-group="partcipantInfo" data-column="dataBaseAddress" data-intern

解析表单上的每个输入以生成下面的Json对象的最佳方法是什么?我不喜欢自定义属性,如果是更好更简单的方法,请分享

   <form>   
    <label>Address</label>

       <input type="text" name="address" data-label="Address" data-group="partcipantInfo" data-column="dataBaseAddress" data-internalUse="1" data-userDefined="0" value="123 Acme Way"/>


     <label>City</label>

          <input type="text" name="City" data-label="City" data-group="partcipantInfo" data-column="dataBaseCity" data-internalUse="1" data-userDefined="1" value="Loony Tunes"/>

   <input type="submit"value="Submit" />
</form>

使用jQuery serializeArray()方法:

有关更多信息:

http://api.jquery.com/serializeArray/
相当简单:

var inputs = document.querySelectorAll('input[type="text"]');
var obj = {
  inputs : Array.prototype.map.call(inputs, function(input){
    return {
      DataLabel : input.getAttribute('data-label'),
      DataGroup : input.getAttribute('data-group'),
      DataColumn : input.getAttribute('data-column'),
      Value: input.value,
      InternalUse: !!+input.getAttribute('data-internalUse'),
      userDefined: !!+input.getAttribute('data-userDefined')
    }
  })
}

console.log(obj);
演示:

注意:
+
是将
'0'/'1'
转换为
假/真
的一种简单方法

http://api.jquery.com/serializeArray/
var inputs = document.querySelectorAll('input[type="text"]');
var obj = {
  inputs : Array.prototype.map.call(inputs, function(input){
    return {
      DataLabel : input.getAttribute('data-label'),
      DataGroup : input.getAttribute('data-group'),
      DataColumn : input.getAttribute('data-column'),
      Value: input.value,
      InternalUse: !!+input.getAttribute('data-internalUse'),
      userDefined: !!+input.getAttribute('data-userDefined')
    }
  })
}

console.log(obj);