提交正在获取输入的最后一个值

时间:2013-07-15 18:03:19

标签: javascript jquery

目标

修复发送输入的最后一个值的问题。

问题

提交后,我的申请中有以下片段:

$(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();
};

有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

您的代码正在使用此代码:

$(event).find("input.quantity").val().blur();

val()检索该值,但不会对其进行修改。使用val("")

你实际上是在你的jsfiddle中正确地做了...所以这就是为什么它在那里工作而不是在你的实际代码中。

答案 1 :(得分:0)

看起来您忘记在真实代码中为.val()方法添加双引号。但是你在“测试”代码中做到了,这就是为什么它正在运行。

您的测试代码:

$(event).find("input.quantity").**val("")**.blur();

-------------------编辑

我刚刚在下面阅读了您的评论,如果这不是解决方案。你可以在调用函数后立即检查如果$(event).val()它是空的,如果空的什么都不做