0

我有一个动态命名的表单,如“edit_project_id”,其中ID改变。如何启用jquery验证任何形式的“edit_project%”?jquery validate rails动态命名形式

我想作为数据属性根据本 http://railscasts.com/episodes/324-passing-data-to-javascript,但没有运气

我已经添加了此标记可以传递name变量

<%= content_tag "div", id: "form_name", data: {name: "edit_user_#{@project.id}" } %> 

然后在我的咖啡通过名称来我的JavaScript /咖啡我尝试用它,但最后没有运气

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

我不太确定你的JS的第一行是什么$符号只是用不同的方式来调用jQuery的,不是吗?另外,Railscast在我想的turbolinks之前,所以如果你使用turbolinks,那么你应该需要调用$ .document.ready()。 – trosborn

+0

这是我对新的项目和工程使用,所以我尝试了改变如何让元素名称 'jQuery的方式 - > \t $(“#NEW_PROJECT”)验证( \t \t郎咸平:“SK ' \t \t规则: \t \t \t '项目[量]':分钟:1 \t \t亮点:(元件) - > \t \t $(元件).parent()。addClass '状态错误' \t \t回 \t \t unhighlight:(元素) - > \t \t $(元素).parent()removeClass '状态,错误' \t \t回 \t);' –

回答

1

我有一个动态命名的窗体,如“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({ ... 
+0

很大。改变jQuery的目标验证形成的作品和帮助,所以我可以使用一个JavaScript的每个表单在我的意见 –