从xmlhttp.responseText获取数据

时间:2012-07-14 22:57:39

标签: javascript html ajax xmlhttprequest

我在调用函数后一直在尝试获取xmlhttp.responseText,因为我希望进行一些显示和隐藏对象。但似乎我无法匹配innerhtml并像按钮一样显示对象。

更新了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">

我只需要获取validate值或innerhtml文本的span id来显示和隐藏按钮。但我尝试不同的方式但它不能匹配innerhtml文本。 请建议。

1 个答案:

答案 0 :(得分: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中没有&lt; success \ _&gt; 元素,使用 span或div 并取得成功。

PS。如果可以的话,您应该只返回单词true或false或成功或失败而不是HTML,并在客户端上呈现文本和图像。