关于keypress jquery问题
当用户在表单中输入某个字母组合时,我试图使一个小示例下拉列表出现。我想我有语法/逻辑问题,因为我甚至不能让警报工作关于keypress jquery问题,jquery,keypress,Jquery,Keypress,当用户在表单中输入某个字母组合时,我试图使一个小示例下拉列表出现。我想我有语法/逻辑问题,因为我甚至不能让警报工作 $(document).ready(function () { $("#inputt").keypress( function(event) { if (event.which == melee || MELEE) { alert("You typed MELEE"); } else if (event
$(document).ready(function () {
$("#inputt").keypress(
function(event) {
if (event.which == melee || MELEE) {
alert("You typed MELEE");
} else if (event.which == knuckle || KNUCKLE) {
alert("You typed KNUCKLE");
} else {
alert("Neither!!!");
$('.knuckle').hide();
$('.melee').hide();
}
});
});
这是样品。
所以您的代码中有错误,因为没有这样的事件。如果您看到开发人员模式的控制台,您可以看到错误。因此,它必须使用
$(“#input”).val()
与值“近战”来比较textbox的值。它会成功的
if (event.which == melee || MELEE) {
必须由
if ($("#inputt").val() == 'melee'|| $("#inputt").val() =='MELEE') {
随后
else if (event.which == knuckle || KNUCKLE)
与
编辑:-另外,您正在使用的事件是按键,因此,如果您编写的文本大于近战,并键入另一个字符,则将触发该事件。最好使用按键事件,按键后释放任何按键时都会触发该事件。您的代码存在一些问题
- 您的代码抛出错误
。 你在寻找一个字符串值,所以近战需要加引号李>未定义近战
- 返回整数,而不是字符串李>
- 我不完全确定你想把你的活动和按键联系起来。。。
因为这意味着它每按一次键都会运行。如果你在看
对于特定单词,您可能希望绑定到更改事件
相反或者,至少在每次按键时都要消除警报,因为这很烦人。在我的示例中,我使用的是
,这要求用户在键入单词后按enter键change
- 如果有人输入近战怎么办?您的代码只查找单词的两个实例,但您可能还需要考虑很多其他实例。处理这个问题的一种方法是将值放在小写,然后只需与近战进行比较
您还没有在任何地方定义
近战
、近战
、指节
或指节
变量…?如果您在运行小提琴时查看浏览器控制台,您至少可以看到部分问题<代码>未捕获引用错误:未定义近战事件。该事件将返回一个整数,表示按下的键,可以找到该键。。。您无法找到使用此选项键入的单词。您是否试图检测用户是否键入了字符串“近战”?您需要获取文本字段的内容并使用字符串比较。或者更好的方法是,if($(“#input”).val().toLower()==‘近战’)
更新了JSFIDLE…另外,您正在使用的事件是按键,因此,如果您编写的文本大于近战,并键入另一个字符,则会触发该事件。如果您只想模拟演示的ajax响应,则会触发该事件。我想要两个单独的下拉列表,两个显示取决于用户键入wither melee或knuck,但不是每个字符我不清楚键入如何模拟ajax响应(我需要了解您是如何进行调用的),但我的回答显示了如何绑定到textbox更改事件,这意味着只有当用户在关注文本框后按enter键时才会触发。您可以交替地创建一个按钮并绑定到按钮上的单击事件,以检测用户何时完成键入并准备提交他们的单词。非常感谢。这很有效。有没有一种方法可以让它在我完成键入后显示或隐藏,而不是单击关闭?@riotgear-我想你可以在keyup事件上添加一个计时器。差不多吧,我刚刚读了一遍。我对实现和语法很粗糙。有没有办法让我在某处看到一个正在工作的JSFIDLE?我会寻找什么?
else if ($("#inputt").val() == 'knuckle' || $("#inputt").val() ==KNUCKLE)
$("#inputt").change(
function() {
if ($(this).val().toLowerCase() === "melee") {
alert("You typed MELEE");
} else if ($(this).val().toLowerCase() === "knuckle") {
alert("You typed KNUCKLE");
} else {
alert("Neither!!!");
$('.knuckle').hide();
$('.melee').hide();
}
});