【问题标题】:Rails: Regx validation error - cannot read addMethodRails:Regx 验证错误 - 无法读取 addMethod
【发布时间】:2018-07-12 18:08:50
【问题描述】:

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

(索引):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-Z\s]*$/
      },
    },
    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'

【问题讨论】:

  • 表示页面上没有$.validator。

标签: jquery ruby-on-rails regex validation


【解决方案1】:

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

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

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

到:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    相关资源
    最近更新 更多