前端如何获取from表单的数据

方法一:serialize()方法通过序列化表单值,创建URL编码文本字符串。
使用方法:$(selector).serialize()
你可以选择一个或者多个表单元素(比如:input及文本框textarea(多行文本框))或者from元素本身。
方法二:serializeArray()方法序列化表单元素,(类似seaialize()方法),返回JSON数据结构数据
注意:对于上述两种方法,文件选择元素不会被序列化!

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        form{
            margin: auto;
        }
        input{
            width: 200px;
            height: 40px;
            border: 1px solid black;
            -webkit-border-radius: 10px;
            -moz-border-radius: 10px;
            border-radius: 10px;
        }
    </style>
    <script src="./jquery-3.4.1.min.js"></script>
</head>
<body>
<!--使用get方式传值,传输的数据会显示在浏览器的地址栏上,并且要给每一个要传输的数据加name名称,这个name名称指代的就是-->
<!--传过去的值的名称-->
<form action="" method="post">
    <input type="text" name="name" value="freely"><br>
    <input type="text" name="age" value="20"><br>
    <input type="text" name="city" value="beijing"><br>
    <input type="text" name="job" value="fe"><br>
    <input type="file" name="file">
</form>
<button id="serialize">send</button>

</body>
<script>
    console.log(window.location.href.split("?"));//使用get方式传值,从路径获取
    $(document).ready(function() {
        $('#serialize').on('click', function() {
            // 方法一 serialize  您可以选择一个或多个表单元素(如输入和/或文本区),或表单元素本身。
            //使用方法$(selector).serialize()
            var str = $('form').serialize();// 得到序列化字符串  注意:文件选择元素不会被序列化!
            console.log(str)// name=freely&age=20&city=beijing&job=fe
            getObj(str);
            // 方法二 serializeArray 注意:文件选择元素不会被序列化!
            //使用方法$(selector).serializeArray()
            // 您可以选择一个或多个表单元素(如输入和/或文本区),或表单元素本身。
            var arr = $('form').serializeArray();
            console.log(arr)
            // 得到数组对象
            /*
             0: {name: "name", value: "freely"}
             1: {name: "age", value: "20"}
             2: {name: "city", value: "beijing"}
             3: {name: "job", value: "fe"}
             */
            // 遍历数组得到 {name: 'freely', age: 20}数据格式
            // 使用jquery方法 $.each方法
            var tempObj = {};
            $.each(arr, function(i, obj) {
                tempObj[obj.name] = obj.value;
            });
            console.log(tempObj); // {name: "freely", age: "20", city: "beijing", job: "fe"}
        });
    });

    function getObj(str) {
        let arr = str.split('&');
        let obj = {};
        arr.map(function(item) {
            let tempArr = item.split('=');
            obj[tempArr[0]] = tempArr[1];
        });
        console.log(obj); // {name: "freely", age: "20", city: "beijing", job: "fe"}
    }
</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值