Railsアプリケーションでclient_side_validationsgemを使用してフォームを検証しています。送信時に、検証を行うフォームの関数がいくつか追加されています。client_side_validationsgemの機能の範囲外であるカスタム検証を自分で実行する必要があるため、それを使用して追加するとform.submit = function
、両方の検証が呼び出されます。しかし、フォームを送信するか送信しないかの決定がどのように行われるのかわかりません。両方の関数がfalseを返す場合は送信する必要がありますが、一方がtrueを返しても、フォームは待機せずに送信されるようです。もう一方がその値を返すために、このような場合をどのように処理できますか?それは、client_side_validations JavaScriptファイル内にコードを挿入することを意味するため、1つの関数にすることはできません。
任意のアイデアや助けをいただければ幸いです。
参照用のカスタム検証コードは次のとおりです。
$('#new_business').submit ->
that = $('#business_referrer_code')
if(that.attr("validated") == "true")
return true
else
code = $('#business_referrer_code')
$.ajax '/representatives/validate_code',
type: 'GET'
dataType: 'json'
data: "code=#{code.val()}"
success: (data, textStatus, jqXHR) ->
if(data.error)
that.after("<label class='message'> Invalid Reference Code</label>")
else
that.attr("validated", true)
that.submit()
false
true
client_side_validationsによって自動生成される他のコードは変更できません。