所以我看了几天前写的一些代码,它运行得很完美,我完全不知道怎么做。我希望你们中的一个可以帮助我。
在我的验证码中,我正在执行一些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”关联的标记内的值,则会将空字符串发送到服务器。怎么会这样!?
谢谢!
答案 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();
}
}
}
}
}
});