gpt4 book ai didi

jquery - 如何在 jQuery 中进行客户端表单验证?

转载 作者:行者123 更新时间:2023-12-01 06:40:43 27 4
gpt4 key购买 nike

我正在尝试使用这个插件:http://docs.jquery.com/Plugins/Validation

其中 #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 name@domain.com"
}
}
})

这些是页面渲染(由 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="/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 name@domain.com"
}
}
});

我在 JS 控制台中看不到任何内容。

编辑2:当我清除登录字段的数据并按提交时,它不会提交。不确定这是否与 validate() 函数实际工作有关。但我没有看到弹出消息或类似的内容。

Edit3:看来问题可能是 ID 和名称字段之间的脱节被命名为不同。但是,Rails 将名称和 ID 分配给这两个字段 - 因此不确定如何解决此问题。

Edit4:我找到了解决方案。我将其添加到所选答案下的评论中。

最佳答案

我认为这是因为表单(输入标签)中“name”属性的值与jquery验证选项不匹配

$('#user_new').validate({
debug: true,
rules: {
user_username: "required", // should be: "user[username]"
user_email: { // should be: "user[email]"
required: true,
email: true
}
},
messages: {
user_username: "Please specify your name", // should be: "user[username]"
user_email: { // should be: "user[email]"
required: "We need your email address to contact you",
email: "Your email address must be in the format of name@domain.com"
}
}
});

编辑:看看这个问题,我想他和你有同样的问题jquery.validate in cakePHP

Edit2:要编辑其显示方式,请在输入标记后面放置一个容器,例如

<div id="username_error"></div>//for username error message

添加此代码:

$('#user_new').validate({
debug: true,
rules: {
//rules
},
messages: {
//messages
},
errorPlacement: function(error, element) {
if ( element.is(":radio") )
error.appendTo( element.parent().next());//if its a radio button
else if ( element.is(":checkbox") )
error.appendTo ( element.next() );//if its a radio button
else
error.appendTo( element.parent().next() );
},//these lines of codes basically telling the jquery.validate plug-in to look for an element after
});

然后应用一些CSS来整理东西

<style>
#username_error{
//a little something something
}
</style>

或者您可以随时查看documentation进一步修改

关于jquery - 如何在 jQuery 中进行客户端表单验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601843/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com