javascript - 联系表单代码定制

标签 javascript jquery html

嗨 – 我已经根据地址 http://designwoop.com/2012/07/tutorial-coding-a-jquery-popup-modal-contact-form/ 上的教程在我的网站上实现了一个联系表单。 它工作正常,唯一的问题是我想在表单中添加一个字段“名称”。

所以我在form的html代码中添加了这行代码:

<input id="name" class="txt" type="name" name="name" placeholder="name"/><br />

修改后的表单代码:

<form id="contact" action="#" method="post" name="contact">
<label for="name">Your Name</label>
<input id="name" class="txt" type="name" name="name" placeholder="name"/><br />
<label for="email">Your E-mail</label>
<input id="email" class="txt" type="email" name="email" placeholder="e-mail address"/>
<br />
<textarea id="msg" class="txtarea" name="msg" placeholder="Type your message here..."></textarea>
<button id="send">Send E-mail</button>
</form>

我还将其添加到发送邮件 php 文件中:

$msg .= "<p><strong>From:</strong> ".$username."</p>\r\n";

发送邮件php文件的完整代码:

?php
$sendto   = "myemail@gmail.com";
$usermail = $_POST['email'];
$content  = nl2br($_POST['msg']);

$subject  = "New Message frm";
$headers  = "From: " . strip_tags($usermail) . "\r\n";
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";

$msg  = "<html><body style='font-family:Arial,sans-serif;'>";
$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>New message</h2>\r\n";
$msg .= "<p><strong>From:</strong> ".$username."</p>\r\n";
$msg .= "<p><strong>E-mail:</strong> ".$usermail."</p>\r\n";
$msg .= "<p><strong>Message:</strong> ".$content."</p>\r\n";
$msg .= "</body></html>";


if(@mail($sendto, $subject, $msg, $headers)) {
        echo "true";
} else {
        echo "false";
}

?>

最后一部分:联系表单的 JavaScript 代码。我想我需要在此处添加对我添加的新字段“名称”的引用。但不知道在哪里? (并且还使该字段成为必填字段)。我们将非常感谢您的帮助。非常感谢

// JavaScript Document
function validateEmail(email) {
                var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
                return reg.test(email);
        }

        $(document).ready(function() {
                $(".modalbox").fancybox();
                $("#contact").submit(function() { return false; });


                $("#send").on("click", function(){
                        var emailval  = $("#email").val();
                        var msgval    = $("#msg").val();
                        var msglen    = msgval.length;
                        var mailvalid = validateEmail(emailval);

                        if(mailvalid == false) {
                                $("#email").addClass("error");
                        }
                        else if(mailvalid == true){
                                $("#email").removeClass("error");
                        }

                        if(msglen < 4) {
                                $("#msg").addClass("error");
                        }
                        else if(msglen >= 4){
                                $("#msg").removeClass("error");
                        }

                        if(mailvalid == true && msglen >= 4) {
                                // if both validate we attempt to send the e-mail
                                // first we hide the submit btn so the user doesnt click twice
                                $("#send").replaceWith("<em>sending...</em>");

                                $.ajax({
                                        type: 'POST',
                                        url: 'sendmessage.php',
                                        data: $("#contact").serialize(),
                                        success: function(data) {
                                                if(data == "true") {
                                                        $("#contact").fadeOut("fast", function(){
                                                                $(this).before("<p><strong>Success! Your message has been sent, thank you.</strong></p>");
                                                                setTimeout("$.fancybox.close()", 1000);
                                                        });
                                                }
                                        }
                                });
                        }
                });
        });

最佳答案

将以下代码替换为:

var emailval  = $("#email").val();
var msgval    = $("#msg").val();
var msglen    = msgval.length;
var mailvalid = validateEmail(emailval);
//Get our name
var nameval = $("#name").val();
//Get our name length
var namelen = nameval.length;

然后在下面

                if(msglen < 4) {
                        $("#msg").addClass("error");
                }
                else if(msglen >= 4){
                        $("#msg").removeClass("error");
                }

添加这个

            if(namelen < 2) {
            //name must be at least 2 characters
                    $("#name").addClass("error");
            }
            else if(namelen >= 2){
                    $("#name").removeClass("error");
            }

JavaScript 就完成了!

对于 PHP 部分,搜索:

$usermail = $_POST['email'];

添加:

$username = $_POST['name'];

试试我的 friend :)

关于javascript - 联系表单代码定制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783596/

相关文章:

javascript - 如果选中另一个具有相同 ID 的复选框,如何禁用复选框

javascript - 从它的子 IFRAME 中删除一个 DIV(跨域)

javascript - 如何在重定向后显示另一个页面的隐藏div

javascript - 在 Jquery 进度条上设置默认值

javascript - 未捕获 TypeError,无法找到原因

javascript - jQuery 销毁 Meteor 中自定义 Polymer 事件的 `detail`

php - 如何使用 Ajax 即时获取 ID

javascript - 是否可以使用 html 标签内联事件属性调用对象方法?

javascript - 在框架内调用 pdf 的方法

javascript - 如何在 Angular JS 中将特定的 div 文本复制到剪贴板