[英]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.