El botón deshabilitado aún escucha el evento de clic

Tengo un problema en una forma en la que hago algunas validaciones jquery. Si no se completa un campo de entrada específico, debe deshabilitar un botón de "paso adelante" agregando un atributo deshabilitado:

if errors
  $('.btn-move-forward').attr("disabled", true)

eso funciona pero también tengo un evento de clic en ese botón: (coffeescript)

$('.btn-move-forward').click ->
  $('#step2, #step3').toggle()

Espero.btn-move-forward para no disparar el evento de clic cuando el botón está desactivado pero lo hace !!

Primero: no entiendo por qué, porque cada especificación del navegador define que esto no debería suceder. De todos modos, traté de evitarlo haciendo lo siguiente:

$('.btn-move-forward').click ->
  if !$(this).is(:disabled)
    $('#step2, #step3').toggle()

o esto

$('.btn-move-forward').click ->
  if $(this).prop("disabled", false)
    $('#step2, #step3').toggle()

o combinando los oyentes de eventos como este:

$('.btn-move-forward').on 'click', '.btn-move-forward:enabled', ->
   $('#step2, #step3').toggle()

No, todo esto no funcionará correctamente. El botón todavía se comporta como un botón de avance.

Todo lo que quiero es que el botón no escucheonclick si está deshabilitado

Respuestas a la pregunta(4)

Su respuesta a la pregunta