2012-02-13 69 views
3

我正在嘗試驗證一個窗體,其中包含帶有方括號[]的名稱屬性的字段。這是一個要求,我不能將名稱屬性更改爲其他的東西,它似乎只是通過ID或ClassName驗證混亂。jQuery驗證字段的名稱屬性包含方括號?

我將如何去驗證w作爲以下示例?截至目前它不使用login[username] JavaScript對象內工作(讓我的整個頁面完全dissappear由於一個錯誤。

$("#loginForm").validate({ 
    rules: { 

     login[username]: { 
      required: true, 
      email: true 
     } 
    }, 
    messages: { 

     login[username]: { 
      required: "Please provide an email", 
      email: "Please enter a valid email address" 
     } 
    } 
}); 
+0

使用'登錄[用戶名]'內的JavaScript對象是無效的語法。你可以在它周圍使用引號並使其有效''login login [username]「'但我不確定這是否能解決你的問題。 – ggreiner 2012-02-13 17:55:48

+0

很確定你只能''登錄[用戶名]「:{' – 2012-02-13 17:55:55

+0

是的,你們是對的,我不確定引用是否可以,但事實上他們是。如果你們其中一個想要作爲答案,我會接受它。 – Joe 2012-02-13 17:59:26

回答

6

是無效的語法。使用引號它,使之有效"login[username]"

4

也許你可以做這樣的事情,而不是...

HTML:

<input type="text" name="login[username]" class="myRule" /> 

的jQuery:

$(document).ready(function() { 

    $('.myRule').rules('add', { 
     required: true, 
     email: true, 
     messages: { 
      required: "Please provide an email", 
      email: "Please enter a valid email address" 
     } 
    }); 

}); 

或者,您不需要添加或使用類,只需使用適當的選擇器來定位適當的輸入元素即可。

$(document).ready(function() { 

    $('input[name=login\\[username\\]]').rules('add', { 
     required: true, 
     email: true, 
     messages: { 
      required: "Please provide an email", 
      email: "Please enter a valid email address" 
     } 
    }); 

}); 

http://docs.jquery.com/Plugins/Validation/rules