jQuery id选择器和validate.js

时间:2012-09-20 00:32:37

标签: javascript jquery validation

所以我看了几天前写的一些代码,它运行得很完美,我完全不知道怎么做。我希望你们中的一个可以帮助我。

在我的验证码中,我正在执行一些ajax请求。这是使用“远程”标签完成的。这些请求将表单中输入的用户名和电子邮件发送到服务器。

 $("#signup-form").validate({
    rules: {
        username: {
            required: true,
            remote: {
                url: "/CheckDuplicateUsername/",
                type: "get",
                data: { 
                    username: $("#username").val()
                }
            }
        },

        email: {
            required: true,
            remote: {
                url: "/CheckDuplicateEmail/",
                type: "get",
                data: { 
                    email : $("#email").val()
                }
            }
        },
//More code

请注意,我将电子邮件和用户名字段中的值发送到服务器。我使用ID获取这些值。我想我从表单的标签中获取了这些数据。现在让我告诉你我的HTML。请注意,我的用户名和密码标记中的ID与我上面的jQuery代码中使用的ID不同。

<div class="fieldWrapper">

              <label for="id_username">Username: </label>
              <input id="id_username" type="text" placeholder="First Name" name="username" maxlength="30" class="valid">
           </div>

<div class="fieldWrapper">

                <label for="id_email">Email</label>
                <input id="id_email" type="text" placeholder="Email" name="email" maxlength="75">
           </div>

我的两个输入标签分别具有id“id_username”和“id_email”。但验证代码选择带有“用户名”和“电子邮件”的标签。请注意,我的验证代码正在向服务器发送正确的数据。如果我尝试更改验证代码以选择与“id_username”和“id_email”关联的标记内的值,则会将空字符串发送到服务器。怎么会这样!?

谢谢!

1 个答案:

答案 0 :(得分:3)

当你有

rules: {
        username: {
...

这意味着验证name属性等于username的字段。指定remote选项后,您可以使用data发送其他字段的数据。就像在这个例子中来自插件docs:

  

&#34;需要电子邮件字段,电子邮件并发送远程请求   检查是否已经取得了给定的地址。另外,http   方法设置为&#34; post&#34;并且用户名将随电子邮件一起发送   。地址&#34;

$("#myform").validate({
  rules: {
    email: {
      required: true,
      email: true,
      remote: {
        url: "check-email.php",
        type: "post",
        data: {
          username: function() {
            return $("#username").val();
          }
        }
      }
    }
  }
});