CoffeeScript函数返回true,因此我可以在单击函数中检查它们

时间:2013-03-09 02:34:41

标签: jquery coffeescript

我正在使用一些CoffeeScript函数在表单中执行验证,以确保选择的内容或输入填充。当单击提交按钮时,我再次运行这些函数。如果函数都是真的,表单可以提交。如果一个是假的,我会打电话给event.preventDefault()。然而,使用代码我点击提交按钮时页面仍然重新加载。这几乎就像函数没有返回true或false。

这是我的一个CoffeeScript函数:

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

我有两个非常相似的人。

这是我的点击功能:

$("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_validhs_validhighered_valid

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

1 个答案:

答案 0 :(得分:2)

删除$ s并在函数调用中添加括号:

bday_valid     = checkBirthdaySelects()
hs_valid       = checkHSGradYearSelect()
highered_valid = checkCollegeGradYearSelect()