0

テキストボックスの値がユーザーによって変更されたときに、データベースに値を挿入しようとしています。.change()jQuery を使用せずにバックエンド コード (C#) を単独でチェックし、動作していることを確認しました。これにより、問題は jQueryイベントが発生していないことにあると思われます。

関連する解決策はないように見えますが、同じ質問をたくさん見てきました。どうすればこれを機能させることができますか?

jQuery:

<script type="text/javascript">
    $(function () {
        $('.qty').change(function () {
            $.post('/InlineEditing.cshtml', { qty: $(this).val(), id: $(this).attr('id') },
                function (data) {
                    alert(data.trim());
                });
        });
    });
</script>

HTML:

<input type="text" class="qty" id="1" value="0" />
4

3 に答える 3

1

テキストの変更を確実に処理したい場合は、代わりに zurb のtextchangedイベントを使用してください。これは、キーストローク、貼り付け操作、切り取り操作などで機能します。

http://www.zurb.com/playground/jquery-text-change-custom-event

このデモを確認してください: http://jsfiddle.net/JnCXG/

コード:

$('#foo').bind('textchange', function (event, previousText) {   
    console.log('Text changed');
});
于 2012-10-16T10:41:54.917 に答える
0

change の代わりにfunction onKeyupまたはonblurevent を記述できます。チェンジイベントはセレクトボックスに適しています。

于 2012-10-16T10:42:48.940 に答える
0

この問題にはいくつかの側面があると思います。

  • キーを押すたびにサーバーのステータスを更新したい場合は、keypress代わりにイベントをリッスンできます。
  • また、レンダリングされた HTML ではなく、POST コマンドを受け入れる URL に HTTP コマンドを指定する必要があることに注意してください。
  • alertスクリプトで何が起こるかをデバッグするには、ひどく不十分です。Firebug などの JavaScript デバッガーを使用して、実際にサーバーに送信される内容を確認することを検討してください。

例については、次のフィドルを参照してください: http://jsfiddle.net/dfH7y/3/ (出力を表示するには、JavaScript コンソールを開く必要がありconsole.logます)

于 2012-10-16T10:39:08.317 に答える