2015-08-14 66 views
1

我正在運行查詢;我的網頁上有多個html輸入框,甚至在多個表格列中,用戶可以編輯業務計算。輸入驗證:刪除退格鍵值

  1. 文本框支持正以及負的值
  2. 的maxlength等等等等....

問題是,當用戶在任何文本框中輸入值;如果他打算打另一個,他有四種方法可以清除這個價值。

  1. 退格或刪除 - 做工精細
  2. CTRL A +刪除 - 做工精細
  3. CTRL A +退格 - 做工精細
  4. 使用鼠標左鍵點擊選中所有文字和拖動來選擇 文字+退格/刪除

第四種情況是失敗的。請在第四種情況下幫助。

代碼:

<input type="text" id="tust"/> 

$(document).ready(function(){ 
document.getElementById('tust').onblur = issueDes;  

$("input").on("keyup keydown",function (e) { 
       if(this.value!='-') 
        while(isNaN(this.value)) 
        this.value = this.value.split('').reverse().join('').replace(/[\D]/i,'').split('').reverse().join(''); 

       }); 
}); 
function issueDes() { 
    $("#tust").val(this.value+"%");  
} 

小提琴: DEMO - MOST CLOSE I CAN RE-CREATE THIS SCENARIO

回答

1

檢測selction和鍵。希望這會對你有用。只有選定的值將被刪除。

arr = [08,127,46]; 
$(document).ready(function(){ 

document.getElementById('tust').onblur = issueDes;  

$("input").on("keyup keydown",function (e) { 
    var checkCode = $.inArray(e.keyCode, arr); 
    if (window.getSelection) { 
     var selectionRange = window.getSelection().toString(); 
     if((selectionRange.length > 0) && (checkCode != -1)){ 
     var value = $("#tust").val(); 
      $("#tust").val(value.replace(selectionRange,"")) 
     } 
    } 

       if(this.value!='-') 
        while(isNaN(this.value)) 
        this.value = this.value.split('').reverse().join('').replace(/[\D]/i,'').split('').reverse().join(''); 



       }); 
}); 
function issueDes() { 
    var currVal = this.value;  
    if(currVal != "" && currVal.indexOf("%") == -1){ 
    $("#tust").val(this.value+"%");  
    } 
} 

demohttp://jsfiddle.net/farhanbaloch/awug6h9a/6/

+0

感謝您的解決方案....我已經更新小提琴。只需要一個mousedown ... – Akki619

+0

有什麼你想讓我做的? – Farhan

+0

沒有兄弟....感謝您的輸入.... – Akki619