Rails:Regx 验证错误 - 无法读取 addMethod



我有一个表单,我想使用正则表达式进行验证,但它给了我以下错误:

(索引):250 未捕获的类型错误:无法读取 HTMLDocument 上未定义的属性"addMethod"。((索引):250)

编辑:我忘了在我的javascripts/application中包含以下行.js:

//= require jquery.validate.additional-methods
//= require jquery.validate

我现在看到一个略有不同的错误:

jquery.validate.additional-methods.self-b6742ad35d3d82c2cb0ca5dc43bfffbc87063c90e0d8fd70714c5424128f408d.js?body=1:31

未捕获的类型错误:无法读取未定义的属性"addMethod">

$.validator.addMethod( "maxWords", function( value, element, params )

脚本:

$(document).ready(function(){
var messages = {
'nameRequired': "Naam is verplicht.",
'emailRequired': "Voer een geldig e-mailadres in.",
'bodyRequired': "Bericht is verplicht."
};
$.validator.addMethod("regx", function(value, element, regexpr) {
return regexpr.test(value);
});
$('#new_message').validate({
rules: {
name: {
required: true,
minlength: 2,
regex: /^[a-zA-Z]+$/
},
email: {
required: true,
regex: /^([0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+[a-zA-Z]{2,9})$/
},
body: {
required: true,
minlength: 3,
regex: /^[a-zA-Zs]*$/
},
},
messages: {
name: messages.nameRequired,
email: messages.emailRequired,
body: messages.bodyRequired
},
onfocusout: function(element) {
this.element(element);
},
});
});

HTML 表单:

<%= form_for @message do | f | %>
<div class="form-group">
<%= f.label :naam %>
<%= f.text_field :name, :class => 'form-control form__field small__field', required: true, name: 'name' %>
<br />
<%= f.label :email, 'E-mailadres' %>
<%= f.text_field :email, :class => 'form-control form__field small__field', required: true, name: 'email' %>
<br />
<%= f.label :bericht %>
<%= f.text_area :body, :class => 'form-control form__field', rows: 7, cols: 72, required: true, name: 'body' %>
<br />
</div>
<%= f.submit "VERSTUUR", :class => 'btn--red btn__submit' %>
<% end %>

我使用的宝石:

gem 'jquery-validation-rails'
gem 'exception_notification'
gem 'jquery-rails'

(代表问题作者发布解决方案)。

也许这对其他人有帮助。我通过切换摆脱了上述错误:

//= require jquery.validate.additional-methods
//= require jquery.validate

自:

//= require jquery.validate
//= require jquery.validate.additional-methods

最新更新