2012-04-27 25 views
5

まあ、私はビューでこのコードがあります:私は要素を検査するとき、それは「TOP」に変更はなく、ブラウザで入力の値属性が変更されないのはなぜですか?

chooseSite = function() { 
    var url = "/main/Ajax/GetSiteDetail?" + 
     "&cid=" + escape(idSite); 

    var ajx = sendAJAX(url, true); 

    ajx.onreadystatechange = function() { 
     if (ajx.readyState == 4) { 
      var result = ajx.responseText;  
      result = "TOP"; 
      document.getElementById("CI.SiteName").value = result; 
     } 
    } 
} 

<input id="CI.SiteName" type="text" value="" name="@@CI.SiteName" disabled=""> 

、その後、私はこの関数を呼び出しますいくつかのイベントをやってファイヤーバグ、INPUTのVALUE属性は変更されていません。

+1

なぜgetElementById()メソッドをリクエストしましたか?それは決して何も変えてはならない。 – Bergi

答えて

11

value属性は実際の値と同期されません。それはvalueプロパティのためのものです。

これは決して.getAttribute('value')を使用しませんが、現在の値にアクセスするには.valueプロパティを使用するので問題はありません。

+0

私は理解していません:| –

+2

@ Mr.Rendezvous - 彼は、HTML属性とJavaScriptオブジェクトのプロパティが同じではないことを意味し、それは本当に重要ではありません。 –

+1

http://stackoverflow.com/a/5876747/298479を見てください - それはjQuery関連ですが、それはかなりうまく説明します。 – ThiefMaster

関連する問題