2012-07-14 94 views
0

我一直試圖在調用函數後獲取xmlhttp.responseText,因爲我希望做一些顯示和隱藏對象。但似乎我不能匹配innerhtml並顯示像按鈕這樣的對象。從xmlhttp.responseText獲取數據

更新JavaScript函數:

function ShowHideDisplay(str) 
{ 
    xmlhttp = new XMLHttpRequest(); 
    //It will echo whatever message into this response.text. 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    { 
    document.getElementById("validate").innerHTML = xmlhttp.responseText; 
    } 
    //Using test 
    var successText = "<img src=\"./images/success.gif\" alt=\"Correct!\">Can be used"; 
    document.getElementById("validate").innerHTML = responseText; 
    if(document.getElementById("validate").innerHTML.test(/success/gmi)) 
    { 
     document.getElementById("submit").style.visibility = 'visible'; 
    } 
    else 
    { 
     document.getElementById("submit").style.visibility = 'hidden'; 
    } 
} 

HTML表單:

<input name="Numbers" type="text" id="Numbers" onkeyup="ShowHideDisplay(this);" value=""/> 
<span id="validate"></span> 
//wants to hide and show upon onkeyup and getting the span id of validate.innerhtml success message 
<input name="submit" id="submit" type="submit"> 

我只需要得到驗證值或文本的innerHTML的跨度ID顯示和隱藏的按鈕。但我嘗試不同的方式,但它不能匹配innerhtml文本。 請提醒。

+0

您的代碼是否考慮到它需要運行依賴ajax調用的回調函數發送給ajax請求的部分,除非它正在同步進行呼叫? – txominpelu 2012-07-14 23:09:20

+0

nv之前使用ajax。但是有可能獲得span id值嗎?這樣我可以說如果成功了,按鈕會顯示 – JLearner 2012-07-14 23:16:32

回答

1

我創建了一個Fiddle這可能是你想要的。

的HTML

<input id="submit" type="submit" /> 
<span id="validate"></span>​ 

的JavaScript

/* Success */ 
var responseText = "<img src=\"./images/success.gif\" alt=\"Correct!\">Can be used"; 

/* Failure */ 
//var responseText = "<img src=\"./images/Failed.gif\" alt=\"Incorrect!\">Can not be used"; 

/* Assign content */  
document.getElementById("validate").innerHTML = responseText || ""; 

/* Change visibility based on outcome (success or not) */  
if(document.getElementById("validate").innerHTML.test(/success/gmi)) { 
    document.getElementById("submit").style.visibility = 'visible'; 
} else { 

    document.getElementById("submit").style.visibility = 'hidden'; 
}​ 

Test with a regular expression如果單詞'成功'是結果還是不行。通過這種方式,響應中的HTML無關緊要。

注意沒有<成功\ >元素在HTML中,使用跨度或DIV帶班的成功。

PS。如果你可以的話,你應該只返回true或者false或者成功或失敗這個詞而不是HTML,並且在客戶端上渲染文本和圖像。

+0

作出實際要求?如在?哦,如果你指的是調出另一頁。是的,我成功了。我可以得到response.text。現在我想知道如何獲取response.text中的跨度id – JLearner 2012-07-14 23:13:30

+0

無法獲取內部html .. – JLearner 2012-07-15 00:27:36

+0

已經更改爲getElementById。但仍然無法做到===。是因爲我的回覆信息包含了這個嗎? 「」\"Correct!\"可以使用「,PHP_EOL; – JLearner 2012-07-15 00:43:02