在表单提交上更改/添加表单值

时间:2014-07-11 06:30:01

标签: javascript jquery html html5

更改或添加在表单提交时序列化并发送到服务器的表单值的标准或最常用方法是什么?我需要在发送之前更改/添加它们。

我找到了一些解决方案,但它们似乎都只是黑客攻击。例如,这个再次创建这些值,这是不明智的。在我的情况下,如果可能,我不想重新创建它们。

var serial = new Array();
var i = 0;
$('.om input').each( function(){
    serial[i++] = $(this).attr('name')[0]+'='+$(this).html()[0];
});
serial.join('&');

1 个答案:

答案 0 :(得分:0)

试试这个,

<html>
<head>

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>

    <script type="text/javascript">
        function submitForm()
        {
            var queryParam = $("#myform").serialize();
            var inputArr = queryParam.split("&");
            var retObj = {};
            $.each(inputArr,function(key,value){
                retObj[value.split("=")[0]] = value.split("=")[1];
            });
            retObj.input1 = "newOne";
            retObj.newAttr = "newlyAddedValue";
            alert(jsObjToQueryStr(retObj));
        }

        function jsObjToQueryStr(jsonObj)
        {
            var retStr = "";
            $.each(jsonObj,function(key,value){
                retStr += key+"="+value+"&";
            });
            if( retStr.length > 0 )
            {
                return retStr.substr(0,retStr.length-1);
            }
            return retStr;
        }

    </script>
</head>
<body>

<form id="myform" >
    <input type="test" name="input1"/>
    <input type="test" name="input2"/>
    <input onclick="submitForm()" type="button" value="submit"/>
</form>

</body>
</html>
相关问题