2012-06-13 81 views
0

我已經提出,大幹快上單擊按鈕執行一個簡單的JavaScript函數 -未定義的javascript函數錯誤

<asp:TextBox ID="TextBox3" runat="server" Width="98px"></asp:TextBox> 
<asp:Button ID="Button3" runat="server" Text="Button" OnClientClick="fn4();" /> 

<script type="text/javascript"> 

function fn4() 
{ 

var search = document.getElementById('TextBox3').value; 

<iframe src="http://fooBar.com/q=" + search + " width="250" height="400" scrolling="no" frameborder="0"></iframe> 

} 
</script> 

所以search項基於從TextBox3用戶的輸入,這是執行然而,當,它帶來了錯誤 -

Error: 'fn4' is undefined 

我該如何解決這個問題?

+0

你可以嘗試的javascript:FN4();而不是fn4(); –

+0

刪除iframe的東西?無論它應該做什麼,它都是一個語法錯誤 - 沒有要聲明的函數。 – Bergi

+0

或者嘗試var fn4 = function(){} – jacktheripper

回答

3

你可能在你的瀏覽器加載網頁時獲取解析器錯誤。而且由於JavaScript不解析,函數沒有定義。這是無效的JavaScript:

function fn4() 
{ 

    var search = document.getElementById('TextBox3').value; 

    <iframe src="http://fooBar.com/q=" + search + " width="250" height="400" scrolling="no" frameborder="0"></iframe> 

} 

有HTML混合在那裏,所以它不會解析爲JavaScript。你到底在想什麼試圖用來做那個iframe

+0

iframe中是一個顯示搜索結果的url。我只是試圖接受用戶搜索條款並將其放入網址,然後運行搜索。 – Ebikeneser

+0

@Jambo:但是當JavaScript函數被調用時,你期望這樣做?您應該將整行視爲JavaScript中的字符串文字。那麼也許你想寫它到頁面上的特定位置?或者從函數返回它,調用代碼可以將它寫入頁面?後者可能更清潔一些。 – David

+0

我很難嘗試獲取用戶搜索字詞並將其插入iframe網址,然後將其顯示在頁面上。你會如何建議我這樣做? – Ebikeneser

1

我對ASP並不熟悉,但是您通常不能像您在fn4()函數中使用那樣混合使用JS和HTML。你的函數有語法錯誤,因此不會被成功定義。

0

你不能有HTML在你的JavaScript的功能。

0
<iframe src="http://fooBar.com/q=" + search + " width="250" height="400" scrolling="no" frameborder="0"></iframe> 

這是爲什麼在你的JavaScript函數中?這將無法正常工作

0

1)發表您生成html代碼,而不是ASP代碼:它或多或少沒用這裏是因爲我們不肯定知道你的ASP將從此產生做。

2)你的腳本部分肯定會打破頁面解析內的HTML標籤。