       input = event.target
       $input = $(input)
       unless @validField(input)
+        row = $input.closest('tr')
         # blank rows are OK
-        allBlank = true
-        for i in $input.closest('tr').find('input')
-          allBlank = false if i.value != ''
-
-        $input.addClass 'error' unless allBlank
+        $input.addClass 'error' unless @rowIsBlank(row)
       else
         $input.val $input.nextAll('.datetime_suggest').text()
 

      invalidDate = $input.nextAll('.datetime_suggest').hasClass('invalid_datetime')
      !($input.val() == '') && !invalidDate

    blocks: () ->
      ary = []
      for range in @blocksManager.blocks

      valid = true

      @blocksManager.reset()

      @div.find('.time-block-list-body').find('tr').each (i, row) =>
        return if @rowIsBlank(row)

        $row = $(row)
        for fieldName in ['date', 'start_time', 'end_time']
