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

Yu正在使用该.submit()功能将表单数据发送到服务器。其中一件事.submit()是重新加载页面。重新加载页面时,您在 subission 之前收集的任何数据都会丢失,除非服务器将其存储并将其作为新页面的一部分发送。

您可以使用 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 回答