我有一个动态命名的表单,如" 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并不重要。如果有可能使用一些通配符或传递变量,两者对我来说都没关系,只是不知道该怎么做
答案 0 :(得分:1)
我有一个由rails“动态命名”的表单,例如“edit_project_id”,其中ID发生了变化。如何为任何表单启用jquery验证
仅供参考 - .validate()
方法不需要附加到id
。您可以使用您可以想象的any valid jQuery selector。唯一的要求是选择器只能定位一个表单,而不是一组表单。
因此,如果您在页面上只有一个表单,则只需定位<form>
标记本身......
$('form').validate({ ...
如果这是不可接受的,那么检查渲染的DOM并根据其他一组标准构造一个可靠的jQuery选择器。
当data
属性以edit_user
之类的内容开头时,定位$('[data^="edit_user"]').validate({ ...
属性...
form
如果您有多个.each()
与选择器匹配,请将其打包在.validate()
中,$('[data^="edit_user"]').each(function() {
$(this).validate({ ...
将附加到所有匹配表单。
{{1}}