繁体   English   中英

表单验证后如何将提交按钮链接到另一个页面?

[英]How to link submit button to another page after form validation?

我在尝试将表单中的提交按钮链接到另一个页面时遇到问题。 在将用户发送到新页面之前,我希望它验证表单详细信息,如果有任何错误,则抛出必要的错误。 如果没有错误,则应将它们发送到下一页,在那里他们可以看到查询摘要,然后才提交。

目前,我的 HTML 代码是:

                            <form id="myform" class="contact-form">

                                <label id="fullname">Full Name*</label> <br />
                                <input name="name" id="name" class="txt-form name" type="text" />

                                <label id="mail">Email*</label> <br />
                                <input name="email" id="email" class="txt-form email" type="email" />

                                <label id="cheap">Have you found this item cheaper on a competitor
                                    website?*</label><br />

                                <label>
                                    <input id="radio1" type="radio" name="radio" value="1">
                                    <label for="radio1"><span><span></span></span>Yes</label>

                                    <input id="radio2" type="radio" name="radio" value="2">
                                    <label for="radio2"><span><span></span></span>No</label> <br />
                                </label>


                                <div id="url">
                                    <label>Competitor URL</label>
                                    <input name="url_name" id="url-link" class="txt-form" type="url">
                                </div>

                                <label id="msg">Enquiry Message* <span id="characters">(0/200)</span></label>
                                <textarea name="message" id="message" class="txt-form message"
                                    type="textarea"></textarea>
                                <p id="asterisk">Fields marked with an *asterisk are compulsory</p>

                                <input type="submit" class=" btn" id="submit" value="Submit your enquiry">
                            </form>

JavaScript:

$(document).ready(function () {
    $('#myform').validate({
        rules: {
            name: {
                required: true,
            },
            email: {
                required: true,
            },
            radio: {
                required: true,
            },
            message: {
                required: true,
            },
            url_name: {
                required: true,
            },
        },
        messages: {
            name: {
                required: 'Please enter a valid name <br/>',
            },
            email: {
                required: 'Please enter a valid email <br/>',
            },
            radio: {
                required: 'Please select an option <br/>',
            },
            url_name: {
                required: 'Please enter a competitior URL',
            },
            message: {
                required: 'Please enter a message in your enquiry.',
            },
        },

        errorPlacement: function (error, element) {
            if (element.prop('type') === 'radio') {
                error.insertBefore(element);
            } else {
                error.insertBefore(element);
            }
        },
    });

    $('#message').keyup(function () {
        el = $(this);
        if (el.val().length >= 201) {
            el.val(el.val().substr(0, 200));
        } else {
            $('#characters').text('(' + el.val().length + '/200)');
        }
    });

    //Removes the default checked radio button, setting it to false
    $('input[name=radio]').attr('checked', false);
});

在我的代码中,表单正在运行验证,但是,当我单击提交按钮时,它不会将我带到下一页。 当我向提交按钮添加链接时,将我带到下一页,它不会执行验证检查。 所以我现在有点困惑。 如果有人可以提供帮助,将不胜感激。 谢谢你。

您应该使用表单操作而不是 href 移动到其他页面。 同时在您的提交按钮上执行您的验证。 以下应该修复您的代码:

<form id="myform" class="myclass" method=get action=".../nextpage.html">

对于按钮: <button type=submit onClick="validate('myform')" value=submit>

js function 进行验证:

function validation(formid){
//perform your validations
if (valid)
    $("#formid").submit();
else
   alert("Validation error");
}

至于您的验证,您可以在<input>标签中简单地添加required ,而不是像这样的<input name="name" id="name" class="txt-form name" type="text" required />

您需要在您的表单上有一个方法和操作,如下所示

<form id="myform" class="contact-form" method = "post" action ="process.php">

其中 process.php 是一个包含后端逻辑的文件。

如果没有使用js的理由,可以在输入字段中使用required进行验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM