0

私はオンラインチュートリアルでAJAXを学んでおり、コードをいじろうとしています。

以下は、チュートリアルのコードです。

<body>
<script language="javascript" type="text/javascript">

function ajaxFunction(){
var ajaxRequest;  // The variable that makes Ajax possible!

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        document.myForm.time.value = ajaxRequest.responseText;
    }
}
ajaxRequest.open("POST", "serverTime.php", true);
ajaxRequest.send(null); 
}

</script>

<form name='myForm'>
Name: <input type='text' onChange="ajaxFunction();" name='username' /> <br />
<!--  *******  this is what I want to work with: ****-->   <input type='text' name='time' />
</form>
</body>
</html>

結果<p><input>. 次のことを試しましたが、うまくいきませんでした。

<p name="time"></p>

私は何を間違っていますか?

編集

以下の回答に基づいて、コードを次のように変更しました。

    ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
                var txtNode = document.createTextNode(ajaxRequest.responseText);
                document.getElementById("time").appendChild(txtNode);
    }

<p id="time"></p>

私はまだそれを機能させることができません。私は何を間違っていますか?

4

2 に答える 2

2

段落要素には属性を指定できません。代わりにnamean を使用する必要があります。idこれは、document.getElementById("time")代わりにも使用する必要があることを意味しますdocument.myForm.time

JavaScript を編集します。

if(ajaxRequest.readyState == 4) {
    var txtNode = document.createTextNode(ajaxRequest.responseText);
    document.getElementById("time").appendChild(txtNode);
}

そしてあなたのHTML:

<p id="time"></p>
于 2013-03-20T03:08:07.690 に答える
1

フォーム内のinput、select、およびtextareaタグには、pタグ(またはその他のタグ)ではなく、その名前でのみアクセスできます。p タグに name 属性を含めることさえできません。

document.myForm.time.value = ajaxRequest.responseText; 
// time should be a input tag with name time in order for this code to work

これの代わりに

<p id="time"></p>

そしてあなたのJavaScriptコードで

document.getElementById("time").innerHTML = ajaxRequest.responseText; 
于 2013-03-20T03:11:49.683 に答える