2014-02-24 25 views
0

我只需要輸入字符串valriable進入文本框,但空格鍵不工作,請有人幫助我的朋友。 。 。太空吧(32)沒有按鍵工作

$(".onlyname").keypress(function (evt) { 
    evt = (evt) ? evt : event; 
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
    ((evt.which) ? evt.which : 0)); 
    if (charCode > 31 && (charCode == 9 || charCode == 40 || charCode == 39 || charCode == 32 || charCode == 37 || charCode == 27 || charCode < 65 || charCode > 90) && 
    (charCode < 97 || charCode > 122)) { 
    $('#error').attr('class', 'errorMessage'); 
    $('#error').text("Enter Only Alphabets Value"); 
    return false; 
    } 
    else { 
    $('#error').attr('class', ' display: none;'); 
    $('#error').text(""); 
    return true; 
    } 
}); 
+2

嘗試'keydown'事件 - 「按鍵事件是類似keydown事件,除了改性劑和非打印按鍵,如Shift,Esc,並刪除觸發keydown事件,但不是按鍵事件。「 - http://api.jquery.com/keypress/ – elclanrs

+2

'$('#error')。attr('class','display:none;');'不正確,應該是'$('#錯誤')。css('display','none');' – coolguy

+0

同樣在jQuery中'e.which'被標準化,你不需要所有'charCode'代碼。與'evt'相同。 – elclanrs

回答

1

這種情況是錯誤的

if (charCode > 31 && (charCode == 9 || charCode == 40 || charCode == 39 || charCode == 32 || charCode == 37 || charCode == 27 || charCode < 65 || charCode > 90) && 
    (charCode < 97 || charCode > 122)) { 

空格鍵碼爲32,所以這一點,如果條件是,當你鍵入空格在線北京,並打印錯誤。

嘗試那朵小提琴http://jsfiddle.net/nfDM8/

或者試試這個編輯在自己的代碼

 $(".onlyname").keypress(function (evt) { 
     evt = (evt) ? evt : event; 
     var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
      ((evt.which) ? evt.which : 0)); 
     if (charCode > 32 && (charCode == 9 || charCode == 40 || charCode == 39 || charCode == 37 || charCode == 27 || charCode < 65 || charCode > 90) && 
      (charCode < 97 || charCode > 122)) { 
      alert("Enter Only Alphabets Value"); 
      return false; 
     } 
     else {    
      return true;  
     } 
    }); 
+0

它不工作看到這個小提琴http://jsbin.com/qesowipu/3/edit – Dinesh

+0

現在它的工作..看到這個http://jsbin.com/qesowipu/4/edit – SajithNair