2017-05-09 129 views
0

HTML的问题很简单:为什么我的JS不能正确地从表格中提取价值?

<form> <input type="text" name="locSearch" id="locSearch" /> <button id="locSearchBtn"><i class="fa fa-search" id="search-icon"></i></button> </form>

JS:

$(document).ready(function() { 
getsWeather('seattle, wa', 'f'); 
$("#locSearchBtn").click(function() { 
    getsWeather(document.getElementById('locSearch').value, 'f'); 
}); 

当我提交表单(通过按ENTER键或单击提交图标,页面重新加载,但与默认设置(即用'Seattle,wa作为getsWeather函数的默认参数)。我需要它来提取输入框中的任何内容,并将它用作getsWeather函数中的参数,但目前不工作。

任何想法?让我知道如果你需要更多的代码来了解它

+0

所以问题,你觉得页面重新加载是越野车还是代码应该如何工作?因为如果它的越野车,那么你需要防止表单被提交。否则,所有工作都会重置 – Sagar

+0

是因为它每次重新加载整个脚本,即使我只是要求它用用户在表单中输入的值重新加载它? – pmath325

+0

@Jamiec老实说,我不确定,因为我是一个初学者。我正在使用http://simpleweatherjs.com/框架。 – pmath325

回答

3

如果你想修改页面,你需要防止单击按钮时提交表单。两种方法做到这一点:

  1. 添加return falseclick处理程序按钮结束。这将阻止表单提交(如果在客户端上启用了JavaScript)。

  2. type="button"添加到按钮,所以它不再是提交按钮。

理想情况下,你会合并#1处理表单提交,如果客户端不支持JavaScript,来处理少数谁使用JavaScript浏览通过表单提交禁止在处理人Javascript成为使用页内更新启用客户端。

+0

这适用于按钮。我该如何将这个添加到输入中,以便当用户按下时输入相同的东西? – pmath325

+0

@ pmath325同样处理'form'提交并返回false。我相信@ T.J。将更新细节。 – Jamiec

+0

@Jamiec你们都很棒。解释为什么这会起作用?提交什么才能做到这一点,所以我需要让回报为假? – pmath325

相关问题