0

いくつかのCoffeeScript関数を使用して、フォームで検証を実行し、項目が選択されているか、入力が入力されていることを確認しています。送信ボタンがクリックされたときに、関数をもう一度実行しています。関数がすべてtrueの場合、フォームは送信できます。一つが間違っているなら、私はそれを呼びますevent.preventDefault()。それでも、コードを使用すると、送信ボタンがクリックされたときにページがリロードされます。これは、関数がtrueまたはfalseを返さないかのようです。

これが私のCoffeeScript関数の1つです:

checkHSGradYearSelect = ->
  valid = false
  hs_present         = $("#profile_high_school").val() isnt ""
  hs_grad_year_empty = $("#profile_hs_grad_year_1i").val() is ""
  if hs_present and hs_grad_year_empty
    $("#hs_grad label.message").text("High School Grad Year can't be blank")
  else
    $("#hs_grad label.message").text("")
    valid = true
  return valid

他に非常によく似たものが2つあります。

これが私のクリック機能です:

$("form.edit_profile input[type='submit']").click (event) ->
  bday_valid     = $ checkBirthdaySelects
  hs_valid       = $ checkHSGradYearSelect
  highered_valid = $ checkCollegeGradYearSelect
  if !bday_valid  or !hs_valid or !highered_valid
    event.preventDefault()

誰かが私が間違っていることを理解するのを手伝ってもらえますか?

更新:ログに記録するbday_validか、hs_validまたはhighered_valid取得した場合

[document, context: document, constructor: function, init: function, selector: "", jquery: "1.8.3"…]
4

1 に答える 1

2

$ sを削除し、関数呼び出しから括弧を追加します。

bday_valid     = checkBirthdaySelects()
hs_valid       = checkHSGradYearSelect()
highered_valid = checkCollegeGradYearSelect()
于 2013-03-09T02:46:17.270 に答える