簡體   English   中英

Coffeescript無法在Ruby on Rails上執行

[英]Coffeescript not executing on Ruby on Rails

我正在嘗試使用Coffeescript在Ruby on Rails應用程序中進行一些表單驗證。 但是腳本沒有執行。 我正在嘗試添加驗證以檢查輸入的密碼和輸入的確認密碼是否相等。

$(document).on 'ready page:load', ->
  password = document.getElementById('user_password').value
  password_confirmation = document.getElementById('user_password_confirmation').value

  validatePassword = ->
    password = document.getElementById('user_password').value
    password_confirmation = document.getElementById('user_password_confirmation').value
    if password.value != password_confirmation.value
      password_confirmation.setCustomValidity 'Passwords Don\'t Match'
    else
      password_confirmation.setCustomValidity ''
    return

  password.onchange = validatePassword
  password_confirmation.onkeyup = validatePassword

我在這篇文章中提到的$(document).on 'ready page:load'添加了$(document).on 'ready page:load' ,但似乎沒有任何效果。

我相應的.html.erb文件包含以下代碼:

<%= f.password_field :password,:onkeyup => 'validatePassword()', class: 'form-control',:required=>true %>
<%= f.password_field :password_confirmation, :onkeyup => 'validatePassword()', class: 'form-control',:required=>true %>

您確定腳本未運行嗎? 您是否將console.log放在$(document).on 'ready page:load'回調中的$(document).on 'ready page:load'並進行檢查?

接下來的事情...我相信即使執行腳本也不會起作用。 page:load回調中定義validatePassword函數時,您不會將其分配給window對象。 這里發生的只是在回調中創建本地函數,而該函數從外部( erb文件中的validatePassword()無法訪問。 你應該寫window.validatePassword = ...definition...

還有一件事。 此行password = document.getElementById('user_password').value返回一個值,該值是String。 幾行之后,您正在編寫password.onchange = validatePassword ,但是問題是password沒有onchange屬性(因為它是字符串)。 您可能想在這里實現的是password = document.getElementById('user_password')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM