Javascript 从表单自定义属性动态创建JSON对象
解析表单上的每个输入以生成下面的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
<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);