我想生成像
这样的JSON数据{
"first_name": "fname",
"last_name": "lname",
"zip": "123456",
"subjects": [
{
"name": "bee"
},
{
"name": "ms"
},
{
"name": "edc"
}
]
}
来自以下表格
<form action="" method="post">
first Name:<input type="text" name="first_name"/> <br/>
last name:<input type="text" name="last_name"/> <br/>
Widget URL:<input type="text" name="zip" /> <br/>
Support:<br/>
span3:<input type="checkbox" name="name" value="bee"/><br/>
span6:<input type="checkbox" name="name" value="ms"/><br/>
span12:<input type="checkbox" name="name" value="edc"/><br/>
<p><input type="submit" /></p>
</form>
使用jquery。这个表单结构是否适用于以下JSON结构?我需要脚本将json提示给用户
答案 0 :(得分:2)
您需要使用
对数据进行字符串化https://github.com/douglascrockford/JSON-js
var data = {};
data["first_name"] = $('input[name="first_name"]').val();
data["last_name"] = $('input[name="last_name"]').val();
console.log(data);
alert(JSON.stringify(data));
jsfiddle http://jsfiddle.net/gfmU4/2/
答案 1 :(得分:2)
您可以在提交表单后使用php代替将JSON格式输出给用户。
使用
<?php echo json_encode($_POST); ?>
或者如果你真的需要使用jQuery。请使用以下代码:
<form action="" method="post">
first Name:<input type="text" name="first_name"/> <br/>
last name:<input type="text" name="last_name"/> <br/>
Widget URL:<input type="text" name="zip"/> <br/>
Support:<br/>
span3:<input type="checkbox" name="subjects" value="bee"/><br/>
span6:<input type="checkbox" name="subjects" value="ms"/><br/>
span12:<input type="checkbox" name="subjects" value="edc"/><br/>
<p><input type="button" id="btnsubmit" value="submit"/></p>
</form>
<pre id="json_output"></pre>
jquery代码将是:
$(document).ready(function(){
var formObject = {};
$('#btnsubmit').click(function(){
var formInputString = $('form').serialize();
var inputParameters = formInputString.split('&');
var nameValues = [];
$.each(inputParameters,function(i){
var inputParameter = inputParameters[i].split('='); // 0 - keyName , 1 - keyValue
var keyName = inputParameter[0];
var keyValue = inputParameter[1];
if(keyName == 'subjects'){
nameValues.push({ name : keyValue});
formObject[keyName] = nameValues;
}else{
formObject[keyName] = keyValue;
}
});
var myString = JSON.stringify(formObject);
$('#json_output').text(myString);
});
});
答案 2 :(得分:0)