在submit()表单jquery之后缺少数组中的值

时间:2013-07-12 07:49:50

标签: jquery

我是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>

3 个答案:

答案 0 :(得分:0)

Yu使用.submit()函数将表单数据发送到服务器。 .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.

        });
    }
});

答案 1 :(得分: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

答案 2 :(得分:0)

因为Html是无国籍的。为了保持数组的值,要么使用cookie然后将其存储在其中,然后在下次重新加载时尝试从cookie中获取值。或者使用Ajax发布表单,就像提交表单一样,它不会被刷新。