我想要一个允许按“&”按键但不允许按数字键“7”的验证,我该怎么做。 以下是我的代码片段...
$(function(){
$('#idCategoryName').keydown(function(event){
var keyCode = event.keyCode;
var categoryName = $('#idCategoryName').val();
/* console.log("'"+ ( categoryName.slice(1) == " " ) +"' "+ categoryName.slice(1)); */
/* console.log(keyCode); */
if( keyCode == 32 ) {
if( ( categoryName.slice(-1) == " ") )
event.preventDefault();
if( event.target.selectionStart === 0)
return false;
}
if( keyCode == 55 )
if( ( categoryName.slice(-1) == "&") )
event.preventDefault();
if( keyCode == 191 )
if( ( categoryName.slice(-1) == "/" ) )
event.preventDefault();
return ( ( keyCode >= 65 && keyCode <= 90 ) || keyCode == 8 || keyCode == 9 ||
keyCode == 37 || keyCode == 38 || keyCode == 39 || keyCode == 40 ||
keyCode == 32 || keyCode == 13 || keyCode == 46 || keyCode == 55 ||
keyCode == 191 );
});
});
此代码允许输入“7”,并且我不想在我的输入框中输入任何数值,代码改进,欢迎...
我更新的工作片段...
$(function(){
$('#idCategoryName').keydown(function(event){
var keyCode = event.keyCode;
var categoryName = $('#idCategoryName').val();
/* console.log("'"+ ( categoryName.slice(1) == " " ) +"' "+ categoryName.slice(1)); */
/* console.log(keyCode); */
if( keyCode == 32 ) {
if( ( categoryName.slice(-1) == " ") )
event.preventDefault();
if( event.target.selectionStart === 0)
return false;
}
**Changed Here**
if( event.shiftKey ) {
if( ( categoryName.slice(-1) == "&") )
event.preventDefault();
if( keyCode == 55 )
return true;
}
if( keyCode == 191 )
if( ( categoryName.slice(-1) == "/" ) )
event.preventDefault();
return ( ( keyCode >= 65 && keyCode <= 90 ) || keyCode == 8 || keyCode == 9 ||
keyCode == 37 || keyCode == 38 || keyCode == 39 || keyCode == 40 ||
keyCode == 32 || keyCode == 13 || keyCode == 46 || keyCode == 191 );
});
});
最佳答案
您还需要检测 shift
键。然后将其放入 if
语句中。
基于您的代码
示例:
if(event.shiftKey == true && keyCode == 55) {
alert("Shift + 7 (&) are pressed!");
}
shift
的键码是 16
。
fiddle 示例:http://jsfiddle.net/C0dekid/dprx94j7/
关于javascript - JQuery 验证 - 如何检测 '&' keyPress (仅允许 '&' 而不是 '7' ,因为两个键码都是 '55' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36767591/