Javascript 无法销毁引导工具提示
我限制用户使用jquery在文本框中输入特殊字符。 我正在向用户显示错误消息作为引导工具提示。但是如果用户在文本框中输入了正确的数据,我无法销毁引导工具提示Javascript 无法销毁引导工具提示,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我限制用户使用jquery在文本框中输入特殊字符。 我正在向用户显示错误消息作为引导工具提示。但是如果用户在文本框中输入了正确的数据,我无法销毁引导工具提示 <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="style.css"> <script src="script.js"></script> &l
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<link rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons">
<link href='http://fonts.googleapis.com/css?family=Roboto:400,300,300italic,500,400italic,700,700italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//storage.googleapis.com/code.getmdl.io/1.0.1/material.teal-red.min.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//storage.googleapis.com/code.getmdl.io/1.0.1/material.min.js"></script>
<script>
var specialKeys = new Array();
specialKeys.push(8); //Backspace
specialKeys.push(9); //Tab
specialKeys.push(46); //Delete
specialKeys.push(36); //Home
specialKeys.push(35); //End
specialKeys.push(37); //Left
specialKeys.push(39); //Right
specialKeys.push(64);
var mainelemnt;
function IsAlphaNumeric(elment, e) {
mainelemnt = elment;
var keyCode = (window.event) ? e.charCode : e.keyCode;
var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || keyCode == 64 || keyCode == 46 || keyCode == 32 || (keyCode >= 97 && keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));
if (ret == false) {
$(mainelemnt).tooltip('show');
} else {
$(mainelemnt).tooltip('destroy');
}
return ret;
}
</script>
</head>
<body>
<div id="mydiv" class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label" style="margin-top:100px">
<input class="mdl-textfield__input" type="text" id="username" onkeypress="return IsAlphaNumeric(this, event);" data-placement="top" data-toggle="tooltip" data-original-title="special charecters are not allowed" onblur="ValidateEmail(this)" />
<label class="mdl-textfield__label" for="username">Username</label>
</div>
</body>
</html>
var specialKeys=新数组();
推(8)//退格
推(9)//标签
推(46)//删除
推(36)//家
推(35)//终点
推(37)//左边
推(39)//赖特
推(64);
var主元件;
函数为对数函数(elment,e){
mainelemnt=elment;
var-keyCode=(window.event)?e.charCode:e.keyCode;
var ret=((keyCode>=48&&keyCode=65&&keyCode=97&&keyCode我认为您的问题有点过于复杂了。当出现keyup时,我们不应该测试字符,而应该测试整个字符串
如果有人用鼠标粘贴了什么东西呢?现在你可以自己指定模糊
$.fn.isValidAlphaNum = function () {
return /^[a-zA-Z0-9]*$/.test($(this).val());
};
$('#username').keyup(function (e) {
if (!$(this).isValidAlphaNum()) {
alert('Not valid');
//Show the tooltip
} else {
alert('Valid');
//Hide the tooltip
}
});
这是一个可行的办法。谁否决了我的问题,wt是背后的原因。不是我,但我想这是因为你的问题几乎没有努力确定问题区域(而不仅仅是链接所有代码)。解释哪一行应该删除工具提示以及您尝试了什么。这通常是一个友好的地方,但也有一些问题,被认为缺乏努力的问题会被处理类似的缺乏解释的问题。hi@AdamHopkinson,当用户在文本框中输入特殊字符时,如果使用r输入了更正的数据我正在删除工具提示,但错误是如果用户输入了错误的数据,工具提示就会显示出来。但是在输入了更正的数据后,工具提示仍然会显示。请参考plunker链接。嗨@AdamHopkinson,请参考plunker并建议我。@srilu您的代码工作正常。修复了一个问题。嗨,我知道这个answer、 我希望阻止用户输入像我的代码这样的特殊字符。正如您在keyup上看到的那样,也可以执行相同的操作。将其添加到粘贴事件中。这是在每个keyup上检查整个字符串。