【问题标题】:Could not find form id in javascript function在 javascript 函数中找不到表单 ID
【发布时间】:2015-11-03 05:54:02
【问题描述】:

我正在使用 devise 注册一个新用户。我的表单 ID 是“new_user”。我正在使用validation.js 插件进行客户端验证。注册时我想从 coffeescript 调用一个函数。

#= require validation.js.coffee
formValidation = ->

  validate_form = new Validation("Forms")
  validate_form.validate_registration_form "#new_user" if $("#new_user").length


formValidation()

在浏览器控制台调试时单击后,控制进入此功能,我得到 $("#new_user").length 为 0 。当控制离开这个功能时,我得到$("#new_user").length 为1。

无法理解为什么那个 id 消失了。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 这个函数到底是什么时候调用的?我怀疑是在 DOM 准备好之前。
  • 是的.. 在 DOM 准备好之前。怎么称呼它?
  • 嗯,它应该在 你的表单 DOM 准备好之后调用。将其包装在jQuery.ready -> 函数或其他东西中。
  • 在 jQuery.ready -> 中添加了函数。但是现在当我提交表单时没有调用该函数
  • 我认为之前提交时也没有调用它。您必须添加此方法的调用才能在某处提交处理程序。

标签: ruby-on-rails-4 devise coffeescript


【解决方案1】:

coffeescript 帮不了你,我会用 js 格式告诉你

创建一个js文件,写下代码并为用户表单分配一些id。我将为用户表单获取示例 'user_form' id。

$('#user_form').validate({
    rules: {
    'user[first_name]': {required: true, email: true},
    'user[last_name]': {required: true, email: true}
    },
    submitHandler: function(form) { 
        if ($(form).valid()) form.submit(); return false; 
    }
});

希望这段代码对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多