0

オブジェクトの表示と非表示を実行したいので、関数を呼び出した後、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">

ボタンを表示および非表示にするには、検証値またはinnerhtmlテキストのスパンIDを取得する必要があります。しかし、私はさまざまな方法を試しましたが、innerhtmlテキストと一致しません。親切なアドバイス。

4

1 に答える 1

1

私はおそらくあなたが望むことをするフィドルを作成しました。

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';
}​

「success」という単語が結果に含まれているかどうかを正規表現でテストします。このように、応答のHTMLが何であるかは実際には重要ではありません。

注HTMLには<success\>要素はありません。クラスsuccessでspanまたはdivを使用してください。

PS。可能であれば、HTMLの代わりにtrueまたはfalse、または成功または失敗という単語のみを返し、クライアントにテキストと画像をレンダリングする必要があります。

于 2012-07-14T23:11:59.043 に答える