修复发送输入的最后一个值的问题。
提交后,我的申请中有以下片段:
$(event).find("input.quantity").val("").blur();
正如您所看到的,我将值重置为""
,但如果我第二次按Enter键而没有任何值(提交),则传递的值是我的最后一次。我打字了。
我真的不知道该怎么做。
我让this jsFiddle来说明我的问题,但它没有任何问题 - 我不知道为什么,因为我的应用程序是对其代码的调整。
我正在做什么来重置上面传递的输入(在问题部分)和两个函数(.val()
和.blur()
)正在工作(输入没有聚焦,值被更改为空),但似乎浏览器正在发送我之前传递的最后一个值。
只是为了考虑,请按照我的提交触发器 - 是的,我正在与KnockoutJS合作(我不认为这是相关的):
self.add = function (item, event) {
self.items.push(item);
$.ajax({
type: "POST",
url: "/ProductsSummary/Add",
data: { productId: item.id(), productQuantity: item.quantity() }
});
item.isAdded(true);
$(event).find("input.quantity").val("").blur();
};
有人有任何想法吗?
答案 0 :(得分:1)
您的代码正在使用此代码:
$(event).find("input.quantity").val().blur();
val()
检索该值,但不会对其进行修改。使用val("")
你实际上是在你的jsfiddle中正确地做了...所以这就是为什么它在那里工作而不是在你的实际代码中。
答案 1 :(得分:0)
看起来您忘记在真实代码中为.val()方法添加双引号。但是你在“测试”代码中做到了,这就是为什么它正在运行。
您的测试代码:
$(event).find("input.quantity").**val("")**.blur();
-------------------编辑
我刚刚在下面阅读了您的评论,如果这不是解决方案。你可以在调用函数后立即检查如果$(event).val()它是空的,如果空的什么都不做