從負號改變值大括號可以blur
函數來完成。挑戰是在發起事件時獲得正確的值。這可以通過覆蓋val()
事件並在那裏進行操作來完成。
(function($) {
var originalVal = $.fn.val;
$.fn.val = function(value) {
if (arguments.length >= 1) {
// setter invoked, do processing
return originalVal.call(this, value);
}
//getter invoked do processing
if ($(this).attr('data-type') == 'number') {
var valueToReturn = originalVal.call(this);
return valueToReturn.replace(/\(/g, '-').replace(/\)/g, '');
}
return originalVal.call(this);
};
})(jQuery);
我從here重寫val()
事件的想法。
我創建了一個jsFiddle here來演示這一點。在按鈕點擊事件處理程序中看到,我們只是使用$('#myNumber').val()
來獲取正確的值。
請注意,您仍然需要處理無效數字的情況。
希望這會有所幫助!
我在編輯它之前閱讀了這個問題,並沒有看到破折號的替換。你的小提琴似乎是史詩般的。即使我沒有這個用例,如果我需要類似的東西,請確保使用這個! – Randy