2012-02-16 49 views
0

我想要在index.html中的表单动作中获取文本字段的数据。我正在考虑与JavaScript做什么,如果有任何其他方式获得HTML格式的数据请提及它。全局变量在javascript中调用方法时不会发生变化

我的index.html是

<head><script type="text/javascript" src="js/storevalue.js"></script></head> 
<body> 
<form action="h.html" method="post"> 
<input type="text" name="bran" value="Enter Brand/Molecule" id="searchstring"/> 
<input type="submit" value="Brand" class="right" id="startsearchbutton" onclick="st_v();> 
</form> 
</body> 

我storevalue.js是

var b; 
function st_v(){b=document.getElementById('searchstring').value; } 

function valt(){ 
alert("in val="+window.b);//printing in val=undefined 
      } 

我h.html代码

<script type="text/javascript" src="js/storevalue.js"></script> 
<script type="text/javascript" charset="utf-8"> 
function successCB() {valt();} 
</script> 

回答

0

一旦页面被刷新或重新定向所有的JavaScript数据从记忆中消失。您可以使用Cookie使数据在不同页面上可访问 http://www.w3schools.com/js/js_cookies.asp

+0

当我使用Cookie是有必要设置和获取由存在于同一页面JS cookie的,因为如新页面h.html打开其无法识别的cookie,我设置了 – saum22 2012-02-16 11:56:23

+0

不需要,cookie对同一域中的所有页面都可见。 – Ivan 2012-02-20 11:05:39

0

当您单击提交按钮时,您将用户发送到其他页面,因此当您更改页面时,所有内容都将被丢弃。

您是否需要/想更改页面?

如果没有,你可以用

代替提交按钮,你可以使用一些AJAX库提交您的搜索结果,如果结果返回它们注入当前页面(因为你似乎是一个新手我会建议您使用element.innerHTML = html代码)

如果更改页面,您可能希望使用PHP等一些服务器端脚本来执行搜索。 你将不得不处理url h.html?bran = XXX并使用它来生成一个新的html页面。

0

storevalue.js只是一个“库”,它实际上并不存储这个值本身。在index.html中有一个“b”变量,而在h.html中有另一个变量。

通常,当使用帖子提交表单时,其字段在服务器端被读取和处理。你会打电话给h.php或类似的东西。

+0

我只需要使用html,就像我用javascript做的那样 – saum22 2012-02-16 12:19:57

+0

然后,使用cookie的替代方法是使用GET方法而不是POST,然后解析h.html中的查询字符串。这将是相当古怪,但因为你只需要使用html .. – Jad 2012-02-16 16:04:15