0

私はjqueryの初心者です。フォームを送信する前に配列に値を追加しようとしましたが、ページのリロード後に配列の値がありません。助けてください。これが私のコードです:

<script type="text/javascript">
    var arrRecord = [];
    $("body").keydown(function (e) {
        if (e.which === 13) {
            arrRecord.push($('#hdCode').val());
            alert("before load: " + arrRecord[0]);
            $('form').submit();
        }
    });

    $(window).load(function () {
        alert("after load: " + arrRecord[0]);

    });
<script>
4

3 に答える 3

0

関数を使用して.submit()、フォーム データをサーバーに送信しています。行うことの 1 つは.submit()、ページをリロードすることです。送信前に収集したデータは、サーバーが保存して新しいページの一部として送信しない限り、ページがリロードされると失われます。

を実行せずにデータを送信する AJAX 呼び出しを使用して、サーバーにデータを送信できます.submit()。ページはリロードされず、データをそのまま使用して処理を続行できます。

次のようなものが必要です。

$("body").keydown(function (e) {
    if (e.which === 13) {
        arrRecord.push($('#hdCode').val());
        alert("before load: " + arrRecord[0]);
        $.ajax("tourURL.php", $('form').serialize(), function(data){

           // do something after sending data here.

        });
    }
});
于 2013-07-12T07:56:57.497 に答える
0

フォームの値を取得して Java スクリプト経由で送信しようとしている場合は、次のコードを試してください。

$(function(){

$('form').on('submit', function(e){
e.preventDefault(); // prevents the default action of form submit

//console.log($(this).serialize());

   $.post($(this).attr('action'), $(this).serialize(), function(response){
    //console.log(response);
   }, 'json');

});

}); // doc ready
于 2013-07-12T07:57:45.640 に答える
0

Html はステートレスなので。配列の値を永続化するには、Cookie を使用してそこに格納し、次のリロード時に Cookie から値を取得しようとします。または、Ajaxを使用して、フォームを送信するのと同じようにフォームを投稿します。この方法では、フォームは更新されません。

于 2013-07-12T07:57:48.217 に答える