Coffescript没有在rails app中编译。说法语错误 - 意外缩进

时间:2018-02-07 22:04:23

标签: coffeescript

我是coffeescript的新手,我不确定我的语法有什么问题。如果单击更新按钮时日期或时间字段为空,我想添加错误消息。这是我的代码。

$.add_error = (field, message) ->
  unless field.hasClass('input-error')
    field.after('<span class="input-error-message">' + message + '</span>')
  field.addClass('input-error')

$.remove_error = (field) ->
  field.removeClass('input-error')
  field.parent().find('.input-error-message').remove()

$('.btn.update_schedule').click ->
  date = $('#date')
  time = $('#time')
  if (date.val() && !time.val()) || (!date.val() && time.val())
    if !time.val()
      $.add_error(repeat_count, 'Please select both a date and time')
      false
    else !date.val()
      $.add_error(repeat_date, 'Please select both a date and time')
      false
    else
      $.remove_error(time) || $.remove_error(date)

我无法编译此代码,因为它说有意外的缩进但我看不到它。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

在最后一个块$('.btn.update_schedule').click ->中,有一个

 if ... else ... else ...

基本上没有意义。

似乎应该是

if ... else if ... else ...

这似乎是正确的版本:

$('.btn.update_schedule').click ->
  date = $('#date')
  time = $('#time')
  if (date.val() && !time.val()) || (!date.val() && time.val())
    if !time.val()
      $.add_error(repeat_count, 'Please select both a date and time')
      false
    else if !date.val()
      $.add_error(repeat_date, 'Please select both a date and time')
      false
    else
      $.remove_error(time) || $.remove_error(date)
相关问题