2012-02-13 110 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

相关问题