Вопрос по html, javascript – Почему не изменяется значение атрибута ввода?

6

Ну, я имею в виду этот код:

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

и затем я делаю какое-то событие, которое вызовет эту функцию:

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

в браузере оно изменилось на "TOP" но когда я проверяю элемент с помощью firebug, атрибут VALUE для INPUT все еще не изменился.

Почему вы запросили метод getElementById ()? Он никогда не должен был ничего менять. Bergi

Ваш Ответ

1   ответ
15

value attribute не синхронизируется с фактическим значением; это то, чтоvalue property для.

Это не является проблемой, поскольку вы никогда не будете использовать.getAttribute('value') но использовать собственность.value чтобы получить доступ к текущему значению.

@ Mr.Rendezvous - он означает, что атрибут HTML и свойство объекта JavaScript - это не одно и то же, и это на самом деле не имеет значения.
Я не понимаю: | Mr.Rendezvous
Спасибо, теперь это вполне откроет мне глаза :) Mr.Rendezvous
Посмотри наstackoverflow.com/a/5876747/298479 - хотя это связано с jQuery, это объясняет это довольно хорошо.

Похожие вопросы