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

标签 javascript jquery html

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

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

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

最佳答案

试试这个,

<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>

关于javascript - 在表单提交上更改/添加表单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24691389/

相关文章:

javascript - 根据浏览器的屏幕分辨率更改 Logo 图像

javascript - 有没有办法识别用户如何阅读帖子

javascript - 获取列表项的名称,单击 jquery 中的自动完成功能

javascript - 发送 jqueryAjax 请求时出现错误

javascript - 用 Sinon.js 模拟的对象不承认通过 jQuery.delegate 回调执行了它们的方法

javascript - CSS 列仅在 Safari/Mac 上消失

javascript - 如何从异步调用返回响应?

javascript - 我可以不使用对象中的对象来绘制图像()吗?

javascript - 以 Angular 实现交互式弹出窗口/标注

php - 在 wordpress 中更改小部件内的默认 HTML 标记