2009-05-24 2 views
1

представить это код, который я использую, чтобы отключить кнопкуправильно отключить кнопку

  $("#btnSubmit").attr('disabled', 'disabled') 
      $("#btnSubmit").disabled = true; 

и это моя кнопка

<input id="btnSubmit" class="grayButtonBlueText" type="submit" value="Submit" /> 

кнопку отправить, хотя выглядит отключена, вы можете нажать на это. Это протестировано с FF 3.0 и IE6

Я делаю что-то неправильно здесь?

ответ

1

В зависимости от того, как обрабатывается подача формы, вам также может потребоваться удалить любые обработчики кликов и/или добавить тот, который прервет отправку.

$('#btnSubmit').unbind('click').click(function() { return false; }); 

Вам нужно будет добавить обработчик щелчка снова, когда (если) вы снова включите кнопку.

4

Если это реальная форма, т.е. не событий JavaScript обрабатывается, это должно работать.

Если вы управляете кнопкой с событием onClick, вы обнаружите, что она, вероятно, все еще срабатывает. Если вы это делаете, вам лучше просто установить переменную в вашей JS, как buttonDisabled, и проверить, что var, когда вы обрабатываете событие onClick.

В противном случае попробуйте

$(yourButton).attr("disabled", "true"); 

И если после всего этого, вы все еще получаете нигде, вы можете вручную «сломать» кнопку с помощью JQuery (это становится серьезным сейчас):

$(submitButton).click(function(ev) { 
    ev.stopPropagation(); 
    ev.preventDefault(); 
}); 

Это должно остановить кнопку, действующую как кнопка.

0

Вам необходимо обработать кнопку «Назад/Пред.» В браузере. Пример ниже

1) Создание form.js:

(function($) { 
    $.enhanceFormsBehaviour = function() { 
     $('form').enhanceBehaviour(); 
    } 

    $.fn.enhanceBehaviour = function() { 
     return this.each(function() { 
      var submits = $(this).find(':submit'); 
      submits.click(function() { 
       var hidden = document.createElement('input'); 
       hidden.type = 'hidden'; 
       hidden.name = this.name; 
       hidden.value = this.value; 
       this.parentNode.insertBefore(hidden, this) 
      }); 
      $(this).submit(function() { 
       submits.attr("disabled", "disabled"); 
      });   
      $(window).unload(function() { 
       submits.removeAttr("disabled"); 
      }) 
     }); 
    } 
})(jQuery); 

2) Добавить в свой HTML:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#contact_frm).enhanceBehaviour(); 
    }); 
</script> 

<form id="contact_frm" method="post" action="/contact"> 
    <input type="submit" value="Send" name="doSend" /> 
</form> 

Готово :)

Смежные вопросы