2

目標

入力の最後の値を送信する問題を修正します。

問題

送信後、アプリケーションに次のフラグメントがあります。

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

ご覧のとおり、値を にリセットしていますが""、(送信するために) 値を指定せずに 2 回目に Enter キーを押すと、渡された値が最後に入力した値になります。

どうすればいいのか本当にわかりません。

遊び場

私の問題を説明するためにこの 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();
};

誰かが何か考えがありますか?

4

2 に答える 2

1

あなたのコードはこれを使用しています:

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

val()値を取得しますが、変更はしません。使用するval("")

ただし、実際にはjsfiddleで正しく実行しています...実際のコードではなく、そこで機能するのはそのためです。

于 2013-07-15T18:10:39.440 に答える
0

実際のコードで .val() メソッドに二重引用符を追加するのを忘れたようです。ただし、「テスト」コードでそれを行ったので、機能しています。

あなたのテストコード:

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

- - - - - - - - - - 編集

以下のコメントを読みましたが、これが解決策ではない場合。$(event).val() が空の場合は関数が呼び出された直後に確認でき、空の場合は何もしません

于 2013-07-15T18:14:14.070 に答える