2013-10-03 112 views
0

我想忽略*鍵盤輸入; 我正在嘗試以下代碼;但在警戒之後; '*'正在文本框中打印如何忽略*文本框中的鍵盤輸入

如何忽略'*'?

我的HTML代碼

<input name="filterTextField" type="text" id="filterTextField" tabindex="2" style="width: 240px; 
    position: absolute; top: 1px; left: 1px; z-index: 2;border:none;" onkeypress="asteriskValidation(event)" /> 

我的Java腳本

function asteriskValidation(event){ 
var textValue = document.getElementById('filterTextField').value; 
var charCode = (event.which) ? event.which : event.keyCode; 
         if (charCode == 42) 
          { 
           alert("asterix not allowed"); 
           textValue = ''; 
           return false; 
          } 
           else 
          {  
           return true; 
          } 
      }     
+0

'textValue'僅僅是一個變量,它並不指'filterTextField'。 –

+0

看看這個:http://stackoverflow.com/questions/15302746/ignoring-input-characters-on-key-down – Afshin

+0

你爲什麼不允許用戶輸入星號?如果我認爲我的鍵盤壞了,我會非常惱火。此外,如果用戶禁用JavaScript並向服務器發送星號會發生什麼情況?這裏聽起來有點... – 2013-10-03 06:05:29

回答

1

你必須返回值onkeypress事件。嘗試:

<input name="filterTextField" type="text" id="filterTextField" tabindex="2" style="width: 240px; 
    position: absolute; top: 1px; left: 1px; z-index: 2;border:none;" onkeypress="return asteriskValidation(event)" /> 

DEMO FIDDLE

0

試試這個方法:

DEMO

$("#filterTextField").keypress(function (evt) { 
     var keycode = evt.charCode || evt.keyCode; 
     if (keycode == 42) { //Enter key's keycode 
     alert("asterix not allowed"); 
     return false; 
    } 
}); 
0

只是固定的,你如何訪問文本框元素。

如果你只是想重置它,不需要返回布爾值。

嘗試

function asteriskValidation(event){ 
    var text = document.getElementById('filterTextField'); 
    var charCode = (event.which) ? event.which : event.keyCode; 
    if (charCode == 42) 
    { 
     alert("asterix not allowed"); 
     text.value = ''; 
    } 
} 
0

化妝功能類似下面

$("input").keypress(function (event) { 
    var keycode = event.charCode || event.keyCode; 
    if (keycode == 42) { 
    return false; 
} 
}); 
相關問題