我有输入(类型=密码),并且我仅将此输入限制为某些字符。代码在这里
$(document).ready(function() {
$('#nguestpass, #nguestps, #nuserpass, #nuserps, #nadminpass, #nadminps').bind('keyup').bind('keyup', function(){
new_char = $(this).val();
if (/[^a-zA-Z0-9\!\@\#\%\*\(\)_\-\+\=\[\]\:\;\'\,\.\?/]/.test( new_char ) === true ) {
alert('Entred character is not allowed. Please correct it.');
return false;
}
return true;
});
});
如果我粘贴无效代码(例如“ř”),则会收到警报(已输入......)。它是正确的。如果我想输入下一个字符,我会再次收到警报。
我认为这对用户来说很讨厌。更好的修改(根据我的说法) - 如果我输入无效字符,我会收到警报 - 确认确定,无效字符将被删除。
你知道它是做什么的吗?谢谢
P.s.:抱歉我的英语不好。
最佳答案
尝试删除最后一个字符:
$(this).val($(this).val().substring(0,$(this).val().length-1));
并将其放在 return false;
关于javascript - jQuery 替换无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23933063/