Ajax

表单序列化

2019-04-10  本文已影响3人  CondorHero

表单通过 Ajax 提交一共两种方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单的提交!</title>
</head>
<body>
    <form id = "biaodan">
        <p>
            输入用户名:
            <input name = "name1" type="text">
        </p>
        <p>
            请输入密码:
            <input name = "name2" type="passeord">
        </p>
        <p>
            性别:<input type="radio" value = "女" name = "name3">女
                  <input type="radio" value = "男" name = "name3">男
        </p>
        <p>
            爱好:<input type="checkbox" value = "弹琴" name = "name4">弹琴
                  <input type="checkbox" value = "下棋" name = "name4">下棋
                  <input type="checkbox" value = "画画" name = "name4">画画
                  <input type="checkbox" checked value = "书法" name = "name4">书法
        </p>
        <p>
            地区:
            <select name = "name5">
                <option  value="北京">北京</option>
                <option  value="上海">上海</option>
                <option  selected="selected" value="合肥">合肥</option>
                <option  value="广州">广州</option>
                <option  value="深圳">深圳</option>
                <option  value="成都">成都</option>
            </select>
        </p>
        <p>
            留言:<br><br>
            <textarea name="name6" id="" cols="40" rows="5"></textarea>
        </p>
        <p>
            <input type="button" value = "提交" id = "btn">
        </p>
        </form>
        <script src = "js/myAjax.js"></script>
        <script>
            var biaodan = document.getElementById("biaodan");
            var btn = document.getElementById("btn");
            btn.onclick = function(){
                //得到表单中的所有控件,表单的elements属性
                var elems = biaodan.elements;
                //检测输出
                console.log(elems);
                //接收结果的数组
                var arr = [];
                //遍历表单
                for(var i = 0;i < elems.length; i++){
                    //得到表单元素
                    var e = elems[i];
                    //检测输出表单类型
                    console.log(e.type);

                    //根据结果把内容放进数组
                    switch(e.type){
                        case "button" :
                    case "submit" :
                    case "reset" :
                        break;
                    case "text" :
                    case "password" :
                    case "textarea" :
                        arr.push(e.name + "=" + e.value);
                        break;
                    case "radio":
                    case "checkbox":
                        //内容为checked才为选中内容
                        e.checked && arr.push(e.name + "=" + e.value);
                        break;
                    case "select-one":
                        var options = e.getElementsByTagName("option");
                        console.log(options);
                        for(var j = 0 ; j < options.length; j++){
                            if(options[j].selected){
                                arr.push(e.name + "=" + options[j].value);
                            }
                        }
                        break;
                    }
                }
                //得到数组可以用arr.join转化为JSON
                console.log(arr);
            }
            
        </script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读