我有一个文本输入,如果条目是alpha,则会发生ajax例程。如果文本条目是数字,我想避免使用ajax例程并运行不同的(非ajax)例程,但仅在使用Enter键时。我有一段艰难的时间试图弄清楚输入字符串末尾是否有输入。
以下不起作用:
thisVal=$(this).val(); // the user input value
endChar = thisVal.charCodeAt( thisVal.substr(thisVal.length) )
if (!isNaN(thisVal) && endhCar == 13){
//Do the non-ajax routine
}
我也试过这个Val.substr(-1)。结果相同。 如何使用或不使用输入密钥进行编码? 将不胜感激。
答案 0 :(得分:1)
使用关键笔划事件来标识<enter>
,因为<enter>
不会影响输入字段的值。这只发生在文本区域。但是,此技术适用于任何可编辑元素。
$("#target").keyup(function(e) {
var code = e.which;
if (code == 13) {
e.preventDefault();
var data = ($(this).val());
if (!isNaN(data)) {
alert("DO numeric AJAX");
} else {
alert("DO alphanumeric AJAX");
}
}
});
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
TYPE AND HIT ENTER:
<input id="target" type="text" />
<br>DIFFERENT RESPONSE FOR NUMERIC & ALPHA NUMERIC INPUTS
</body>
</html>