JQuery 和验证插件

标签 jquery validation

我认为我应该使用 JQuery,而不是编写自己的验证,但我发现这也不容易。我有几个问题希望有人能回答。首先,错误消息仅在我单击“提交”时出现。如何让它们在退出每个字段后出现?这是我的验证代码。

代码:

$(document).ready(function(){
    $("#orderForm").validate({
        rules: {
            shipFirstName: {
                required: true,
            },
            shipFamilyName: {
                required: true,
            },
            shipPhoneNumber: {
                required: true,
            },
            shipStreetName: {
                required: true,
            },
            shipCity: {
                required: true,
            },
            billEmailAddress: {
                required: true,
            },
            billPhoneNumber: {
                required: true,
            },
            billCardNumber: {
                required: true,
            },
            billCardType: {
                required: true,
            },
        }, //end of rules
    }); // end of validate
    }); //end of function

这是我的表单 HTML 代码。我不会显示样式,但我已将其更改为显示红色字体。

代码:

<form id="orderForm" method="post" action="x">
      <table id="formTable" cellpadding="5">
        <tr>
          <td>
            <h3>Shipping and Billing Information</h3>
          </td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><label for="shipFirstname">First Name</label></td>
          <td><input id="shipFirstName" type="text" name="shipFirstName" maxlength=
          "30" /></td>
        </tr>
        <tr>
          <td><label for="shipFamilyName">Surname</label></td>
          <td><input id="shipFamilyName" type="text" name="shipFamilyName" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="shipPhoneNumber">Contact Telephone Number</label></td>
          <td><input id="shipPhoneNumber" type="text" name="shipPhoneNumber" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="shipStreetName">Street Name</label></td>
          <td><input id="shipStreetName" type="text" name="shipStreetName" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="shipCity">City</label></td>
          <td><input id="shipCity" type="text" name="shipCity" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="shipPostalCode">Postal Code</label></td>
          <td><input id="shipPostalCode" type="text" name="shipPostalCode" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="billEmailAddress">Email address</label></td>
          <td><input id="billEmailAddress" type="text" name="billEmailAddress" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="billPhoneNumber">Contact Telephone Number</label></td>
          <td><input id="billPhoneNumber" type="text" name="billPhoneNumber" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="fidelityCardNumber">Fidelity card</label></td>
          <td><input id="fidelityCardNumber" type="text" name="fidelityCardNumber" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="billCardNumber">Credit Card Number</label></td>
          <td><input id="billCardNumber" type="text" name="billCardNumber" maxlength="30" /></td>
        </tr>
        <tr>
          <td><label for="billCardType">Credit Card Type</label></td>
          <td><select id="billCardType" name="billCardType">
            <option value="...">
              Choose your card...
            </option>
            <option value="visa">
              Visa
            </option>
            <option value="mastercard">
              Mastercard
            </option>
          </select></td>
        </tr>
        <tr>
          <td><label for="instructions">Instructions</label></td>
          <td>
          <textarea id="instructions" name="instructions" rows="8" cols="30">
Enter your requirements here or comments.
</textarea></td>
        </tr>
        <tr>
          <td colspan="2"><input id="submit" type="submit" name="Submit" value="Submit" </td>
        </tr>
      </table>
    </form>

我还想对邮政编码和保真卡使用正则表达式。如何将这些内容合并到脚本中?这是正确的吗?我该把它放在哪里?

$.validator.addMethod('shipPostalCode', function (value) {
    return /^[A-Z]{2}\d{1,2}\s\d{1,2}[A-Z]{2}$/.test(value);
    }, 'Please enter a valid Postal Code');
    $.validator.addMethod('fidelityCardNumber', function (value) {
    return /^[A-Z]{1}([A-Z]|\d){4}\s?([A-Z]|\d){5}\s?([A-Z]|\d){3}\d{1}(\!|\&|\@|\?){1}$/.test(value);
    }, 'Please enter a valid card number');

最后一件事。这个脚本可以轻松地放入外部js文件中吗?我试图从 html 文件中获取尽可能多的信息。

谢谢

最佳答案

$(文档).ready(函数(){ $("#orderForm").validate({ onfocusout:真实, 规则:{ 船名:{ 要求:真实, }, 船舶家族名称:{ 要求:真实, }, 船舶电话号码:{ 要求:真实, }, 船舶街道名称:{ 要求:真实, }, 船舶城市:{ 要求:真实, }, 帐单电子邮件地址:{ 要求:真实, }, 账单电话号码:{ 要求:真实, }, 账单卡号:{ 要求:真实, }, 账单卡类型:{ 要求:真实, }, },//规则结束 });//验证结束 });//函数结束

这样,每次您离开一个字段时,它都会自动验证它。 :)

关于JQuery 和验证插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132328/

相关文章:

javascript - 如何通过 jquery 提交时使用 onclick 事件验证 ajax 表单?

java - [] 如何改变 Java 正则表达式?

javascript - 使用 Jquery 在悬停输入类型图像时添加一个 div

javascript - 使用 Jquery Grid ajax 调用绑定(bind)网格数据时参数传递为 'null'

javascript - 为什么我的页面会重新加载,即使我有 event.preventDefault (表单处理 jquery + node.js)

javascript - jQuery:TypeError 'undefined' 不是一个函数

jquery - 在 jQuery 选择器中连接

ruby-on-rails - 如何判断哪个关联模型未通过ActiveRecord验证?

javascript - 当所有字段都有效时jquery验证启用表单: do no show error for empty fileds

asp.net-mvc - 使用数据注释的 MVC 验证 - 模型类或 View 模型类?