我的代码有效但只有在我存在的字符串之后再次写入时才返回true。其中flowName
是文字input
。
例如:数据库:Flow123
on keypress:Flow123返回false,但是当我点击另一个键时,它返回true。
这是我的代码:
//validate flow name
$('#flowName').keypress(function () {
var flowName = $(this).val();
$.ajax({
url: '/check-flowName',
type: 'post',
data: {flowName: flowName},
success: function (result) {
console.log(result);
//if exists
if (result) {
}
//else do nothing
}
})
});
我该如何解决这个问题?
答案 0 :(得分:1)
如果您使用keypress
,则会因key
,的值而失去最后一次input
,因为按下该键时会触发event
,因此它不会在input
值中考虑此密钥。
<强>解决方案:强>
您需要使用 keyup
event ,以便在释放密钥时可以将最后按下的密钥视为value
。
只需在代码中将keypress
替换为keyup
:
$('#flowName').keyup(function () {
var flowName = $(this).val();
});