首页 > 解决方案 > 希望将 jquery 变量从表单更新为函数

问题描述

我在这里看到了很多像我这样的问题,但没有一个答案对我有用,而且我的 JS 低于标准。

我正在使用 SimpleWeather.js,我想做的就是创建一个表单字段来更新邮政编码。我可以从表单中获取 zip 变量,但无法获取它来更新 getWeather() 函数并因此更新天气。

提前致谢!

这是代码的重要部分。

HTML

<form>
  <input id="zip" type="text" name="zip">
</form>

JS

$(document).ready(function() {  
  getWeather(); 
  setInterval(getWeather, 600000);
});

var zip = "90001";
$('#zip').on("change", function(e) {
  e.preventDefault();
  var zip = $("#zip").val();  
  getWeather();
});

function getWeather() {
  $.simpleWeather({
    location: zip,
    woeid: '',
    unit: 'f',
    success: function(weather) {
...

我在https://codepen.io/anon/pen/wRgBBb有一个 codepen

标签: javascriptjquery

解决方案


你有几个小错误......你定义了zip两次变量。你只需要定义一次,否则它会一直停留在90001. 在您的 CodePen 中,您getWeather()在抓住拉链后没有打电话。最后,您要设置提交按钮以type="button"防止表单以经典的 HTML 方式提交:

var zip = "90001";
$('#zip').on("change", function(e) {
  e.preventDefault();
  //var zip = $("#zip").val();  
  zip = $("#zip").val();
  getWeather();
});


<input type="button" id="setZip" name="setZip" value="Set Zip"/>

推荐阅读