2014-01-16 76 views
0

我使用ajax獲取StateName和StateID並顯示一個圖片與接收StateName。點擊該圖片將調用一個JavaScript函數callState(id,state_name)。我的問題是,如果state_name = "Tamil Nadu"是收到的值,函數將不會調用。我知道問題是間距。從控制檯我明白,該函數被稱爲以下形式:callState(1,'Tamil"Nadu'); - 一個額外的"間隔在Tamil和Nadu之間爲什麼額外的「添加arugument字符串時使用ajax接收函數作爲字符串?

以下是我的代碼, ajax重定向到processing_search_state.jsp頁面,我處理並獲取數據。

responce = responce 
       + "<figure> <a href='#'> <img src=../images/tim1.jpg alt='' onclick=callState(" 
       + id + ",'" + state_name + "')></a> <figcaption>" 
       + state_name + "</figcaption></figure>"; 

AJAX:

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      alert("Received Data" + xmlhttp.responseText); 
      document.getElementById("sLocfigID").innerHTML = xmlhttp.responseText; 
     } 

警報:接收到的數據將與超時問題正確打印。下面是警報

<figure> <a href='#'> <img src=../images/timl.jpg alt=" 
onclick=callState(2,'tamil nadu')</a> <figcaption>tamil 
nadu</figcaption> </figure> 

但在控制檯的值是:

<figure> <a href="#"> <img src="../images/tim1.jpg" alt="" onclick="callState(2,'tamil" nadu')=""></a> <figcaption>tamil nadu</figcaption></figure> 

您的信息: 這些代碼工作正常,如果state_name = Goastate_name = Kerala,因爲這是一個字或詞不間距在它。它成功調用callState()函數。

+0

難道你不知道,有一個開放'「'在你的''標籤中沒有關閉'「'?瀏覽器會爲你添加...當然在錯誤的地方 – devnull69

+0

@DnR我從數據庫的state_name中獲取值。通常的查詢。 state_name = rs.getString(2); 在state_name成功接收'泰米爾納德邦' – Sree

+0

@ devnull69 - 對不起,我沒有得到額外的開放。如果你正在談論'alt' - 這是單引號開放和關閉。 – Sree

回答

2

拉法是正確的,你是在你的HTML屬性缺失報價,但它只能導致一個問題從丟失的報價在你onclick屬性,而不是src(因爲它是好的,有不有空格不帶引號的屬性他們的價值)。

添加一個轉義雙引號(\")這裏onclick=callState(",像這樣:

onclick=\"callState(" 

這裏"')></a> <figcaption>"像這樣:

"')\"></a> <figcaption>" 
+0

是的!你有我。它實際上'onclick' – Baby

+0

Paulpro - 非常感謝。所以這是問題。 :) – Sree

相關問題