从函数中获取变量不起作用

时间:2018-01-04 17:09:03

标签: javascript jquery function variables

我正在尝试从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);

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

1 个答案:

答案 0 :(得分:0)

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

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

除了ajax之外,点击和提交之间的区别在于提交将数据发送到服务器,服务器返回数据并完全刷新页面,擦除所有页面级别并降低javascript变量,因为它们的范围是页面。如果您不需要服务器上的数据,那么您只需要使用点击即可。您可以使用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/