2012-02-16 52 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