2012-04-27 36 views
5

Vâng tôi có mã này theo quan điểm:Tại sao thuộc tính giá trị của thay đổi đầu vào?

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

và sau đó tôi làm một số trường hợp sẽ gọi hàm này:

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

trong trình duyệt của nó đổi thành "TOP" nhưng khi tôi kiểm tra nguyên tố với firebug, thuộc tính VALUE của INPUT vẫn còn "", không thay đổi.

+1

Tại sao bạn yêu cầu phương thức getElementById()? Nó không bao giờ phải thay đổi bất cứ điều gì. – Bergi

Trả lời

11

Thuộc tính value không được đồng bộ hóa với giá trị thực tế; đó là nội dung của tài sản value.

Đây không phải là vấn đề mặc dù vì bạn sẽ không bao giờ sử dụng .getAttribute('value') nhưng sử dụng thuộc tính .value để truy cập giá trị hiện tại.

+0

Tôi không hiểu: | –

+2

@ Mr.Rendezvous - Anh ta có nghĩa là thuộc tính HTML và thuộc tính của đối tượng JavaScript không giống nhau, và nó không thực sự quan trọng. –

+1

Hãy xem http://stackoverflow.com/a/5876747/298479 - trong khi đó là jQuery liên quan đến nó giải thích nó khá tốt. – ThiefMaster

Các vấn đề liên quan