jquery 验证 rails 动态命名的表单
jquery validate rails dynamically named form
我有一个由 rails 动态命名的表单,例如 "edit_project_id",其中 ID 发生变化。如何启用 jquery 验证任何形式 "edit_project%" ?
我试图根据此将名称作为数据属性传递给我的 javascript/coffee
http://railscasts.com/episodes/324-passing-data-to-javascript 但运气不好
我添加了这个标签来传递名称变量
<%= content_tag "div", id: "form_name", data: {name: "edit_user_#{@project.id}" } %>
然后在我的咖啡中尝试使用它,但没有成功
jQuery ->
$('#form_name').data('name').validate(
lang: 'sk'
rules:
'project[amount]': min: 1
highlight: (element) ->
$(element).parent().addClass 'state-error'
return
unhighlight: (element) ->
$(element).parent().removeClass 'state-error'
return
);
最后,我希望我的咖啡脚本能够验证 edit_project 的每个表单,ID 无关紧要..如果可以使用一些通配符或传递变量,两者对我来说都可以,只是不知道怎么做
I have a form dynamically named by rails like "edit_project_id" where ID changes. How to enable jquery validate for any form
仅供参考 - .validate()
方法不需要附加到 id
。你可以用你想象得到的any valid jQuery selector。唯一的要求是选择器只能针对一个表单,而不是一组表单。
因此,如果页面上只有一个表单,您可以简单地定位 <form>
标记本身...
$('form').validate({ ...
如果这不可接受,则检查呈现的 DOM 并根据其他一些标准构建可靠的 jQuery 选择器。
当 "starts with" 类似于 edit_user
...
时以 data
属性为目标
$('[data^="edit_user"]').validate({ ...
如果您有多个 form
匹配选择器,请将其包装在 .each()
中,并且 .validate()
将附加到所有匹配的表单中..
$('[data^="edit_user"]').each(function() {
$(this).validate({ ...
我有一个由 rails 动态命名的表单,例如 "edit_project_id",其中 ID 发生变化。如何启用 jquery 验证任何形式 "edit_project%" ?
我试图根据此将名称作为数据属性传递给我的 javascript/coffee http://railscasts.com/episodes/324-passing-data-to-javascript 但运气不好
我添加了这个标签来传递名称变量
<%= content_tag "div", id: "form_name", data: {name: "edit_user_#{@project.id}" } %>
然后在我的咖啡中尝试使用它,但没有成功
jQuery ->
$('#form_name').data('name').validate(
lang: 'sk'
rules:
'project[amount]': min: 1
highlight: (element) ->
$(element).parent().addClass 'state-error'
return
unhighlight: (element) ->
$(element).parent().removeClass 'state-error'
return
);
最后,我希望我的咖啡脚本能够验证 edit_project 的每个表单,ID 无关紧要..如果可以使用一些通配符或传递变量,两者对我来说都可以,只是不知道怎么做
I have a form dynamically named by rails like "edit_project_id" where ID changes. How to enable jquery validate for any form
仅供参考 - .validate()
方法不需要附加到 id
。你可以用你想象得到的any valid jQuery selector。唯一的要求是选择器只能针对一个表单,而不是一组表单。
因此,如果页面上只有一个表单,您可以简单地定位 <form>
标记本身...
$('form').validate({ ...
如果这不可接受,则检查呈现的 DOM 并根据其他一些标准构建可靠的 jQuery 选择器。
当 "starts with" 类似于 edit_user
...
data
属性为目标
$('[data^="edit_user"]').validate({ ...
如果您有多个 form
匹配选择器,请将其包装在 .each()
中,并且 .validate()
将附加到所有匹配的表单中..
$('[data^="edit_user"]').each(function() {
$(this).validate({ ...