php - 用于 Twitter-Bootstrap 联系表单的 JavaScript

标签 php javascript html css twitter-bootstrap

我正在处理我的第一个 bootstrap 元素,但我无法找到关于我想要实现的具体目标的帮助。我认为它比我想象的要简单,但我不擅长 javascript - 这是我的主要问题。

我要实现的目标:

用户会看到 4 个字段 - 姓名、电子邮件、主题、正文reCaptcha。对我来说很难的部分是联系表格的客户端检查。各个领域都需要。除非所有字段都满足要求,否则我不希望启用提交按钮。如果他们在离开时不满足每个字段的要求,它将在该字段中添加 id="inputError"。

一旦满足所有要求,它将从按钮输入中删除 disabled="disabled"字段,并从按钮中删除 'disabled' 类。我的问题是在表单加载时,将禁用类作为最后一个类对象注入(inject)并将 disabled="disabled"添加到字符串中。

约束:

  • 姓名 min(3) max(32)
  • 电子邮件 min(8) max(64) + 正确的电子邮件格式
  • 主题 min(3) max(32)
  • body 最小(20)最大(420)
  • 我真的不在乎他们是否填写了验证码以启用提交按钮,如果他们错过了验证码,那就是他们的错。

表单的原始 HTML:

    <form action="" method="post" class="contact">
    <fieldset>
        <legend class="span8">Send us an email!</legend>
            <p class="email-desc">
                Send us ideas, feedback, job requests or anything that you want to tell us. We want to provide games where you have a voice. We're as open as the platform that we develop for and we expect it to remain that way. 
            </p>
        <label>Name</label>
        <input type="text" class="input-xlarge" name="name" placeholder="John Doe" autofocus>

        <label>Email</label>
        <input type="text" class="input-xlarge" name="email" placeholder="email@domain.com">

        <label>Subject</label>
        <input type="text" class="input-xxlarge" name="subject" placeholder="I couldn't think of a better subject...">

        <label>Body</label>

        <textarea class="email-form" name="body"></textarea>

        <div class="row">
            <div class="submit-row">
                <div class="pull-left">
                    <!-- reCaptcha --> 
                </div>
                <button type="submit" class="btn btn-large btn-primary submit-email" id="submit">Submit</button>
            </div>
        </div>
      </fieldset>
    </form>

求助!如果你能用 javascript 进一步帮助我,我愿意捐款。

我会更新可以找到联系表格的网站; http://www.geekdgames.com/contact.php

最佳答案

我建议使用 vanadiumjs 进行客户端验证。

https://github.com/lambder/Vanadium

您的输入字段看起来像

<input name="firstname" id="fname" class=":required :alpha :wait;1000 
    :min_length;5 input-xxlarge" type="text">

<input name="email" class=":required :email :wait;1000 
    :min_length;5 input-xxlarge" type="text">

等等。

如果验证失败,vanadium 会自动禁用提交。在验证码的情况下,您可以使用 ajax 来验证它。vanadium 中的 ajax 是有问题的。

<input type=text id=captcha class=':required;' name=captcha>

$("#captcha").change(function()
{
    $.ajax({

            url:'/verifycpatcha/?captcha='+ $('#captcha').val()           
          }).done(function(data)
            {
                if(data=='0')
                {
                    alert("Wrong");
                    $('#captcha').val('');
                    $('#captcha').focus();
                }
            });
});

如果错误,这将清除验证码字段,并且 vanidium 会阻止表单提交。

但是,不推荐客户端验证,因为用户可以随时禁用 javascript。

关于php - 用于 Twitter-Bootstrap 联系表单的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118217/

相关文章:

PHP - 无法使用复选框删除 MySQL 行(无表单)

php - 创建动态 js 文件并缓存它?

javascript - react-native-webview 如何注入(inject) javascript?

javascript - jquery和wordpress在浏览器一定宽度时隐藏元素

java - 使用 jsoup 从其他 h3/class 类中的类中提取 href

php - 如何在 Laravel 5 .env 文件中设置多个发送地址?

php - 使用 PHP 获取重定向 URL 的最快方法

javascript - 与 slim.js 绑定(bind)的过渡结束事件

Javascript - 当我单击连接到函数的此按钮时没有任何反应

php - 通过 AJAX 传递数据的空 POST