2015-08-14 142 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