html表单,将一些输入作为JSON字符串

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

我有一个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 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>