我想使用这个插件:http://docs.jquery.com/Plugins/Validation如何在jQuery中进行客户端表单验证?
哪里#user_new是我的形式ID,这是我的代码如下所示:
$('#user_new').validate({
rules: {
user[username]: "required",
user[email]: {
required: true,
email: true
}
},
messages: {
user[username]: "Please specify your name",
user[email]: {
required: "We need your email address to contact you",
email: "Your email address must be in the format of [email protected]"
}
}
})
在这些是我怎么输入字段时看呈现页面时(由Rails的生成):
<input class="clearField curved" id="user_f_name" name="user[f_name]" size="30" type="text" value="First Name" /><br />
<input class="clearField curved" id="user_l_name" name="user[l_name]" size="30" type="text" value="Last Name" /><br />
<input class="clearField curved" id="user_username" name="user[username]" size="30" type="text" value="Username" /><br />
<input class="clearField curved" id="user_password" name="user[password]" size="30" type="password" value="Password" /><br />
<input class="clearField curved" id="user_password_confirmation" name="user[password_confirmation]" size="30" type="password" value="Password" /><br />
<input class="clearField curved" id="user_email" name="user[email]" size="30" type="text" value="Email Address" /><br />
我只是想先验证用户名&电子邮件。然后从那里拿走。
对于我的生活,我无法弄清楚如何指定使用此插件的语法和规则。
帮助!
EDIT1:这里是表单标签的HTML输出:
<form accept-charset="UTF-8" action="https://stackoverflow.com/users/login" class="user_new" id="user_new" method="post">
至于有关调试的问题,当我把它给像这样:
$('#user_new').validate({
debug: true,
rules: {
user_username: "required",
user_email: {
required: true,
email: true
}
},
messages: {
user_username: "Please specify your name",
user_email: {
required: "We need your email address to contact you",
email: "Your email address must be in the format of [email protected]"
}
}
});
我什么也看不到我的JS安慰。
编辑2:当我清除我的数据登录字段并按提交时,它不会提交。不知道这是否与实际工作的validate()函数有关。但是我看不到任何消息弹出或类似的东西。
EDIT3:看来这个问题可能是之间的ID &姓名字段被命名不同的脱节。但是,Rails将名称和ID分配给两个字段 - 所以不知道如何解决这个问题。
Edit4:我找到了解决办法。我将它添加到所选答案下的评论中。
@littlechad放什么validate方法里面? – marcamillion 2011-01-05 09:07:03
评论编辑:尝试添加一个容器后,你的输入标签,我的意思是添加这里面的验证方法:errorPlacement:function(error,element){error.appendTo(element.next());} – littlechad 2011-01-05 09:21:28
btw我在哪里把那个'errorPlacement'代码?应该在消息之后的第二个'}之后?或者我应该完全清除规则然后添加它? – marcamillion 2011-01-05 21:12:39