html表单,将一些输入作为JSON字符串
我有一个servlet,它需要两个参数param1和param2。param1必须有一个“value”作为JSON字符串,而param2的“value”是一个普通输入。i、 e param1={“id”:“userid”,“name”:“username”,“status”:“userstatus”} 参数2=添加 我的问题是如何使用以下html表单实现这一点html表单,将一些输入作为JSON字符串,html,json,servlets,Html,Json,Servlets,我有一个servlet,它需要两个参数param1和param2。param1必须有一个“value”作为JSON字符串,而param2的“value”是一个普通输入。i、 e param1={“id”:“userid”,“name”:“username”,“status”:“userstatus”} 参数2=添加 我的问题是如何使用以下html表单实现这一点 User ID: <input type="text" name="id"><br> User
User ID: <input type="text" name="id"><br>
User Name: <input type="text" name="name"><br>
User Status: <input type="radio" name="status" value="active">Active
<input type="radio" name="status" value="inactive">Inactive<br>
Action: <input type="radio" name="param2" value="add"> Add
<input type="radio" name="param2" value="update"> Update
<input type="radio" name="param2" value="delete"> Delete
<input type="radio" name="param2" value="get"> Get<br>
<button type="submit" >Submit</button>
用户ID:
用户名:
用户状态:活动
不活动的
行动:添加
更新
删除
获取
提交
仅用html无法实现,还需要使用一些javascript 下面是示例代码。(必须有json javascript库)
用户ID:
用户名:
用户状态:
活跃的
不活跃的
行动:
添加
更新
删除
得到
提交
在提交()之前分配的函数{
var param2Add=document.getElementById(“param2Add”)。已选中;
var param2Update=document.getElementById(“param2Update”)。选中;
var param2Delete=document.getElementById(“param2Delete”)。选中;
var param2Get=document.getElementById(“param2Get”)。已选中;
var param2=(param2Add==true)?document.getElementById('param2Add')。值:
(param2Update==true)?document.getElementById('param2Update')。值:
(param2Delete==true)?document.getElementById('param2Delete')。值:
(param2Get==true)?document.getElementById('param2Get')。值:“”;
var statusActive=document.getElementById(“statusActive”)。已选中;
var statusInactive=document.getElementById(“statusInactive”)。已选中;
var status=(statusActive==true)?document.getElementById('statusActive')。值:
(statusInactive==true)?document.getElementById('statusInactive')。值:“”;
var jsonData={
“id”:document.getElementById('userId')。值,
“名称”:document.getElementById('username')。值,
“地位”:地位
};
document.getElementById('param1')。value=JSON.stringify(jsonData);
document.getElementById('param2')。值=状态;
console.log('状态'+状态);
返回true;
};
解决我所面临问题的非常有用的指针。JSON.stringify(jsonData)是必需的,而不是JSON.stringify(status)。@user3591208现在,我已经修复了代码中的错误。
User ID:
<input type="text" name="id" id="userId">
<br> User Name:
<input type="text" name="name" id="username">
<br> User Status:
<input type="radio" name="status" value="active" id="statusActive">Active
<input type="radio" name="status" value="inactive" id="statusInactive">Inactive
<br> Action:
<input type="radio" name="param2" value="add" id="param2Add"> Add
<input type="radio" name="param2" value="update" id="param2Update"> Update
<input type="radio" name="param2" value="delete" id="param2Delete"> Delete
<input type="radio" name="param2" value="get" id="param2Get"> Get
<br>
<form action="MyServlet" onsubmit="return assignedBeforeSubmit();">
<input id="param1" type="hidden" name="param1" value="" />
<input id="param2" type="hidden" name="param2" value="" />
<button type="submit">Submit</button>
</form>
<%-- this will not work without needful json lib --%>
<script src="json.js"></script>
<script src="json2.js"></script>
<script type="text/javascript">
function assignedBeforeSubmit() {
var param2Add = document.getElementById("param2Add").checked;
var param2Update = document.getElementById("param2Update").checked;
var param2Delete = document.getElementById("param2Delete").checked;
var param2Get = document.getElementById("param2Get").checked;
var param2 = (param2Add == true) ? document.getElementById('param2Add').value :
(param2Update == true) ? document.getElementById('param2Update').value :
(param2Delete == true) ? document.getElementById('param2Delete').value :
(param2Get == true) ? document.getElementById('param2Get').value : '';
var statusActive = document.getElementById("statusActive").checked;
var statusInactive = document.getElementById("statusInactive").checked;
var status = (statusActive == true) ? document.getElementById('statusActive').value :
(statusInactive == true) ? document.getElementById('statusInactive').value : '';
var jsonData = {
"id" : document.getElementById('userId').value,
"name" : document.getElementById('username').value,
"status" : status
};
document.getElementById('param1').value = JSON.stringify(jsonData);
document.getElementById('param2').value = status;
console.log('status '+status);
return true;
};
</script>