Javascript $(';form:not(.some类)';)。keydown仍将keydown事件应用于.some类
JQuery的“:not”选择器没有阻止预期被排除的类(装饰元素)触发.keydown事件。为什么? 从下面的代码中,当我在.newOwnerEntryInput字段中按下一个键时,我希望只看到“1”的警报。但我同时看到警报“1”和“2” Javascript:Javascript $(';form:not(.some类)';)。keydown仍将keydown事件应用于.some类,javascript,jquery,html,Javascript,Jquery,Html,JQuery的“:not”选择器没有阻止预期被排除的类(装饰元素)触发.keydown事件。为什么? 从下面的代码中,当我在.newOwnerEntryInput字段中按下一个键时,我希望只看到“1”的警报。但我同时看到警报“1”和“2” Javascript: $('.newOwnerEntryInput').keydown(function (event) { alert('1'); }); // Prevent Enter from submitting form. $('for
$('.newOwnerEntryInput').keydown(function (event) {
alert('1');
});
// Prevent Enter from submitting form.
$('form:not(.newOwnerEntryInput)').keydown(function (event) {
alert('2');
});
HTML:
@DropDownList(“cftMemberID”,null,String.Empty,new{@class=“actionOwnerDropDown hidden”})
我已经尝试了各种引号样式,使用引号和不使用引号围绕被排除的类,以及在类之后添加“input”,如$(“form:not(.newOwnerEntryInput input)”)
谢谢 试试这个:
$('form input:not(.newOwnerEntryInput)').on('keydown',function (event)
{
alert('2');
});
感谢那些帮助过我的人。我确实需要为所有类型的输入字段触发表单,而不仅仅是输入类型的字段。所以这是不可能的 以下是解决我问题的方法:
$('form').keydown(function (event) {
if (! event.which.hasClass('.newOwnerEntryInput')) {
alert('2');
}
});
在这种情况下,对于我输入的class.newOwnerEntryInput,如果按下一个键,它将不会触发事件并将“2”推出警报屏幕
再一次,谢谢,我自己回答这个问题需要几个回答,所有这些回答都有一个解决方案 试试这个:
HTML:
我查看了文档,在他们的示例中,我看到他们的元素input
后面跟着带选择器的函数。此处提供了文档:
我希望这有帮助
干杯 表单本身不是
.newOwnerEntryInput
,因此实际上您只是将keydown事件绑定到表单,这会导致两个事件都触发。这是有道理的,但让我重新措辞以确保我理解。由于my不是一个,所以不能用“:not”将其排除在外。这是正确的吗?那么,如何触发所有“form.”按键事件(my.newOwnerEntryInput输入字段中的除外)?将form
替换为input
,其基本意思是“选择所有没有x类的输入”jQuery选择器就像css选择器一样工作。我现在意识到我应该在整个表单搜索中简单地使用if.hasClass来导出。谢谢大家的评论。为什么不下来?需要解释。
$('form').keydown(function (event) {
if (! event.which.hasClass('.newOwnerEntryInput')) {
alert('2');
}
});
<div>
<input class="newOwnerEntryInput" type="text"/><br />
<!-- I know you have MVC dropdown list, but I replaced it with a html textbox (for simple testing) -->
<input class="newOwnerEntryInput1" type="text"/>
</div>
$('input.newOwnerEntryInput').keydown(function (e) {
alert('1');
});
$('input:not(.newOwnerEntryInput)').keydown(function (e) {
alert('2');
});