0

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

这是我的 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_valid或者我得到hs_validhighered_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 回答