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的每個表單在我的意見 –