/我在html中有两个输入框,每个输入框都在一个单独的表单元素集中:
<input id="RecommendationDaysInputTextBox" class="NumberOfDaysInputTextBox" name="RecommendationDaysInputTextBox" type="text" value="90" />
<input id="ReviewDaysInputTextBox" class="NumberOfDaysInputTextBox" name="ReviewDaysInputTextBox" type="text" value="360" />
我希望在输入数据后用户点击回车键时停止默认传播(我用“更改”和“键盘”更正)。
我正在使用它:
$(".NumberOfDaysInputTextBox").keyup(function(e) {
if (e.which == 13) {
e.preventDefault();
/* e.stopPropagation(); */
$(this).trigger("change");
}
});
它正在开发第一个盒子而不是第二个盒子。点击第二个输入会导致发布和刷新(所有浏览器)。无论我将数据输入框并按Enter键,都会发生这种情况。
有没有人能解释我做错了什么以及如何正确地做到这一点?
答案 0 :(得分:3)
问题,我想,是在keydown上立即触发提交。如果您改为将函数设置为在keydown上执行...
$(".NumberOfDaysInputTextBox").keydown(function(e)
{
if (e.which == 13)
{
e.preventDefault();
e.stopPropagation();
$(this).trigger("change");
}
});
......问题似乎已经解决了。
这是一个小提琴http://jsfiddle.net/jthGY/
答案 1 :(得分:0)
您不想使用keyup,因为它已经触发了该点的默认操作。参考:http://www.quirksmode.org/dom/events/keys.html。考虑使用keydown。