我是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>
答案 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发布表单,就像提交表单一样,它不会被刷新。