web前端开发之Form表单

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 05:54   67   0

1.html(需要引入bootstrap)

                <div class="form">
                    <form action="post" class="form_box" id="registration_form" onsubmit="return false">
                        <label for="" class="form_group col-lg-6 col-md-6 col-sm-6 col-xs-12 te1">
                            <input type="text" required="" placeholder="Name" class="name" name="row[name]"
                                oninvalid="setCustomValidity('required');" oninput="setCustomValidity('');">
                        </label>
                        <label for="" class="form_group col-lg-6 col-md-6 col-sm-6 col-xs-12 te2">
                            <input type="text" required="" placeholder="Email" class="name" name="row[email]"
                                oninvalid="setCustomValidity('required');" oninput="setCustomValidity('');">
                        </label>
                        <label for="" class="mes col-lg-12 col-md-12 col-sm-12 col-xs-12">
                            <textarea type="text" required="" placeholder="Message / Feedback / Request" class="message"
                                name="row[content]" oninvalid="setCustomValidity('required');"
                                oninput="setCustomValidity('');"></textarea>
                        </label>

                        <div class="enquiry_make">
                            <p></p>
                        </div>
                        <div class="sub">
                            <p class="sub_btn" data-field=""><span>Get A Free Quote</span></p>
                        </div>

                    </form>
                </div>

2.Sass(Sass如何转为CSS 请看https://blog.csdn.net/weixin_39089928/article/details/88868698

            .form {
                .row {
                    .form_group {
                        padding-left: 30px;
                    }

                    .te1 {
                        padding-left: 15px;
                    }

                    .te2 {
                        padding-right: 15px;
                    }
                }

                label {
                    margin-bottom: 1.5rem;
                    padding-left: 0;
                    padding-right: 0;

                    input {
                        width: 100%;
                        padding: 0;
                        height: 50px;
                        border: 1px solid rgba(0, 0, 0, 0.302);
                        padding-left: 30px;
                        background: none;
                    }

                    textarea {
                        width: 100%;
                        padding: 0;
                        height: 150px;
                        border: 1px solid rgba(0, 0, 0, 0.302);
                        padding-left: 30px;
                        padding-top: 10px;
                        background: none;
                    }
                }

                .subb {
                    line-height: 66px;
                    width: 100%;
                    overflow: hidden;

                    p {
                        font-size: 18px;
                        font-family: 'Open Sans', sans-serif;
                        color: white;
                        text-align: center;
                        background: #005bac;
                        -webkit-appearance: unset;

                        .iconfont {
                            padding-left: 10px;
                        }
                    }
                }

                .privacy {
                    margin-top: 1rem;
                    text-align: center;
                    text-transform: uppercase;
                    font-size: 12px;
                    font-family: OpenSans-Regular;
                    font-weight: 400;
                    text-decoration: underline;
                    color: rgba(189, 189, 189, 1);
                    line-height: 38px;
                    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2);
                }

                .enquiry_make {
                    position: fixed;
                    z-index: 99;
                    background: rgba(0, 0, 0, 0.7);
                    width: 100%;
                    height: 100%;
                    top: 0;
                    display: none;
                    left: 0;

                    p {
                        position: absolute;
                        left: 50%;
                        top: 50%;
                        transform: translate(-50%, -50%);
                        background: #000;
                        color: #fff;
                        padding: 20px 30px;
                    }
                }
            }

3.JS(需要引入jquery)

$("#registration_form .sub").click(function () {
    var btn = $(this);
    var html = btn.html();
    $(this).text('Loading');
    $(this).attr({
        'disabled': 'disabled'
    });

    var name = $('#registration_form input[name="row[name]"]').val();
    name = name.replace(/^\s+|\s+$/g, "");
    var email = $('#registration_form input[name="row[email]"]').val();
    var mess = $('#registration_form textarea[name="row[content]"]').val();
    mess = mess.replace(/^\s+|\s+$/g, "");//去掉输入框前后空格

    if (!name) {


        $(".enquiry_make").css("display", "block");
        $(".enquiry_make").css("font-size", "20px");
        $('.enquiry_make').find("p").html('The name cannot be empty!');
        $(".enquiry_make").fadeIn(400, function () {}).delay(2000).fadeOut();
        $('#registration_form input[name="row[name]"]').focus();
        btn.html(html);
        btn.removeAttr("disabled");
        return false;
    }
    if (!email) {
        $(".enquiry_make").css("display", "block");
        $(".enquiry_make").css("font-size", "20px");
        $('.enquiry_make').find("p").html('E-mail can not be empty!');
        $(".enquiry_make").fadeIn(400, function () {}).delay(2000).fadeOut();
        $('#registration_form input[name="row[name]"]').focus();
        btn.html(html);
        btn.removeAttr("disabled");
        return false;
    }

    var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
    if (!re.test(email)) {
        console.log("err");
        $(".enquiry_make").css("display", "block");
        $(".enquiry_make").css("font-size", "20px");
        $('.enquiry_make').find("p").html('Mailbox format error,please try again!');
        $(".enquiry_make").fadeIn(400, function () {}).delay(2000).fadeOut();
        $('#registration_form input[name="row[email]"]').focus();
        btn.html(html);
        btn.removeAttr("disabled");
        return false;
    }


    if (!mess) {
        $(".enquiry_make").css("display", "block");
        $(".enquiry_make").css("font-size", "20px");
        $('.enquiry_make').find("p").html('Message can not be empty!');
        $(".enquiry_make").fadeIn(400, function () {}).delay(2000).fadeOut();
        $('#registration_form textarea[name="row[content]"]').focus();
        btn.html(html);
        btn.removeAttr("disabled");
        return false;
    }
    var form = new FormData(document.getElementById("registration_form"));
    var url = window.location.href;
    form.append("row[url]", url);
    $.ajax({
        url: "/ajax/message",
        type: "post",
        data: form,
        processData: false,
        contentType: false,
        success: function (data) {
            dataLayer.push({
                'event': 'form-submitted'
            });
            data = JSON.parse(data);
            if (data.code == 1) {
                $(".enquiry_make").css("display", "block");
                $(".enquiry_make").css("font-size", "20px");
                $('.enquiry_make').find("p").html('<span>The message has been sent, thank you for submitting !</span>');
                $(".form_box").css("display", "block");
                $(".enquiry_make").fadeIn(400, function () {}).delay(4000).fadeOut();

            } else {
                $(".enquiry_make").css("display", "block");
                $(".enquiry_make").css("font-size", "20px");
                $('.enquiry_make').find("p").html(data.msg);
                $(".enquiry_make").fadeIn(400, function () {}).delay(4000).fadeOut();
            }

            btn.html(html);
            btn.removeAttr("disabled");
            $('#registration_form')[0].reset();
        },
        error: function (e) {
            $('.enquiry_make').find("p").html('<span>Server error, please try again later! </span>');
            $(".enquiry_make").fadeIn(400, function () {}).delay(2000).fadeOut();
            btn.html(html);
            btn.removeAttr("disabled");
        }
    });
})

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP