我在调用函数后一直在尝试获取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文本。 请建议。
答案 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,并在客户端上呈现文本和图像。