任何熟悉:disable_with選項的人都會知道,它會在點擊時調整大小以適應輸入按鈕的新文本。無論按鈕的新內容如何,我都希望按鈕保持其原始大小。任何人都知道如何做到這一點?:disable_with但不調整
感謝
任何熟悉:disable_with選項的人都會知道,它會在點擊時調整大小以適應輸入按鈕的新文本。無論按鈕的新內容如何,我都希望按鈕保持其原始大小。任何人都知道如何做到這一點?:disable_with但不調整
感謝
當您使用:disable_with
選項,您使用Rails的Unobtrosive的Javascript驅動程序,因爲Rails的3.1 jQuery的UJS它調用data-disable-with
數據處理程序的位置:
/**
* disable-with handlers
*/
var disable_with_input_selector = 'input[data-disable-with]';
var disable_with_form_selector = 'form[data-remote]:has(' + disable_with_input_selector + ')';
$(disable_with_form_selector).live('ajax:before', function() {
$(this).find(disable_with_input_selector).each(function() {
var input = $(this);
input.data('enable-with', input.val())
.attr('value', input.attr('data-disable-with'))
.attr('disabled', 'disabled');
});
});
$(disable_with_form_selector).live('ajax:complete', function() {
$(this).find(disable_with_input_selector).each(function() {
var input = $(this);
input.removeAttr('disabled')
.val(input.data('enable-with'));
});
});
如果」我們會注意到,在這裏沒有什麼重新調整你的按鈕的大小。這個擴展很可能是由額外的文本引起的,儘管它可能是由一些附屬於disabled
屬性的默認jQuery CSS引起的(我沒有真正檢查過,但這看起來不太可能)。我建議寫嚴格的CSS規則,以防止重新調整大小或做任何你不喜歡的事情。無論哪種方式,這將解決您的問題。
CS的片段,以保持按鈕相同的寬度上節省:
btn = 'input[data-disable-with]'
frm = 'form[data-remote]:has(' + btn + ')'
$(frm).on 'ajax:before', ->
$(@).find(btn).each ->
input = $(@)
input.css('width', input.css('width'))
$(frm).on 'ajax:complete', ->
$(@).find(btn).each ->
$(@).css('width', '')
感謝dward。
該按鈕根據其中的文本調整大小。 – coorasse