我正在使用Igor Escobar的jQuery遮罩插件(https://github.com/igorescobar/jQuery-Mask-Plugin),並且我正在嘗試向遮罩添加後綴以在輸入值的末尾顯示%
符號。是否可以爲jQuery遮罩添加後綴?
我正在建立的應用程序是爲巴西用戶,那麼我必須使用這種數字格式:000.000,00
。其中,
(逗號)是小數點分隔符,.
(點)是千位分隔符。
我寫了下面的代碼來應用蒙版,但還沒有在其末尾添加%
符號。
$('.mask-decimal').each(function() {
var $self = $(this);
var precision = parseInt($self.data('precision'), 10) || 2;
var mask = '#.##0,' + (new Array(precision + 1).join('0'));
$self.mask(mask, {
reverse : true,
maxlength : false
});
$self.on('keyup', function() {
var val = this.value;
if (val) {
if (val.length <= precision) {
while (val.length < precision) {
val = '0' + val;
}
val = '0,' + val;
} else {
var parts = val.split(',');
parts[0] = parts[0].replace(/^0+/, '');
if (parts[0].length === 0) {
parts[0] = '0';
}
val = parts.join(',');
}
this.value = val;
}
});
});
這個面具完美的作品。
我試圖做的是在面具的末尾添加百分比符號,然後在我的keyup
處理程序的開始處將其刪除,最後在返回值之前再次追加它。我基本上改變了這些行:
var mask = '#.##0,' + (new Array(precision + 1).join('0')) + '%';
var val = this.value.replace('%', '');
this.value = val + '%';
變化,我可以輸入在字段中的值,但我不能清楚/使用退格改變它之後。如果我足夠快,我可以選擇整個內容並將其刪除,但對於普通用戶來說這是一個糟糕的解決方案。它發生在這種情況下,因爲光標總是停留在輸入的末尾,並且鍵盤事件很快就會被觸發。
考慮到這一點,有一種方法可以將光標移動到輸入內的特定位置?有人可以看到另一種方式來改變我的功能,所以用戶可以使用退格鍵清除輸入內容嗎?
謝謝您的回答一月事實上,我使用的引導,這樣我就可以使用輸入加上了點。我只想知道是否可以將項目所有者請求的'%'符號附加到輸入值。如果沒有其他答案出現,我會照你的建議去做。 –
當然,這是可能的,你已經做到了。但是你有這個問題,因爲這是個壞主意。你的產品所有者應該告訴你他們想要達到的目標,而不是你應該怎麼做。他們缺乏做出這些決定的技術知識。 – Jan
@GustavoStraube請參閱http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem如果這是您的項目管理設置(項目經理告訴您該怎麼做,而不是他們想要的),如果我是你,我會請求修改這個過程。我無法強調這一點,項目業主(通常)在技術上沒有資格以這種方式提出請求,並且肯定會確保質量較低的產品。爲了您和您的客戶,請修改您的決策流程。 – Jan