当用户在表单中输入特定的字母组合时,我会尝试显示一个小样本下拉列表。我认为我遇到了语法/逻辑问题,因为我甚至无法使警报工作。
$(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();
}
});
});
答案 0 :(得分:1)
因此,您的代码中存在错误,因为没有此类事件。如果您看到开发人员模式的控制台,则可以看到错误。因此,必须使用$("#inputt").val()
并使用值' melee'来计算文本框的值。它会做的伎俩
if (event.which == melee || MELEE) {
必须替换为
if ($("#inputt").val() == 'melee'|| $("#inputt").val() =='MELEE') {
随后
else if (event.which == knuckle || KNUCKLE)
带
else if ($("#inputt").val() == 'knuckle' || $("#inputt").val() ==KNUCKLE)
https://jsfiddle.net/aadi/2odkq3t8/
编辑: - 您正在使用的事件是按键,因此如果您编写的文字大于近战并键入另一个角色,则会触发它然后会被触发。如果你使用keyup事件会更好,这是在按下后释放任何键时触发的。
答案 1 :(得分:1)
您的代码存在一些问题。
melee is not defined
。
你正在寻找一个字符串值,所以混战需要在引号中。 change
,这要求用户在输入单词后按Enter键。Melee
怎么办?您的代码只查找该单词的两个实例,但您可能想要考虑很多其他实例。处理此问题的一种方法是将值设置为小写,然后您只需要与melee
进行比较。 $("#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();
}
});