从函数获取变量不起作用[重复]

问题描述 投票:-4回答:1

我正在尝试从ready函数中获取变量:

var start = "";
var end = "";

$(document).ready(function(){
  $('#aktivnostiPregled').on("submit", function(event){  
    event.preventDefault(); 
    window.start = document.getElementById("date_get_pregled_start").value;
    window.end = document.getElementById("date_get_pregled_end").value;
  });
});

console.log(start);
console.log(end);

有谁知道为什么这不起作用?

javascript jquery function variables
1个回答
0
投票

将您的日志移动到您的提交功能(我已将按钮事件从提交更改为单击,因为我不确定您的调用方式,但点击应该适合您)。例如,见下面的小提琴。您可以通过单击按钮,从控制台(F12,chrome上的控制台选项卡)运行console.log(start)或console.log(end)来测试它,以证明值已保存到窗口变量中。

如果在表单提交之后想要它们(从/向服务器获取/发布结果/数据)那么你需要ajax或使用隐藏的html控件,这个例子将不起作用。

排除ajax,click和submit之间的区别在于submit将数据发送到服务器,服务器返回数据并完全刷新页面,擦除所有页面级别并降低javascript变量,因为它们的范围是页面。如果您不需要来自服务器的数据,那么您只需要使用click。您可以使用ajax单击查看返回服务器数据。除非您明确说明,否则请单击“不要刷新页面”。

var start = "";
var end = "";

$(document).ready(function(){
  $('#test').on("click", function(event){  
    console.log('here');
    event.preventDefault(); 

    window.start = $("#input1").val();
    window.end = $("#input2").val();

    console.log(window.start);
    console.log(window.end);
  });
});

请看这里的小提琴:https://jsfiddle.net/xwfdddsr/1/

© www.soinside.com 2019 - 2024. All rights reserved.