Вопрос по default-value, javascript – Javascript Получить элемент по идентификатору и установить значение

59

У меня есть функция JavaScript, которой я передаю параметр. Параметр представляет идентификатор элемента (скрытое поле) на моей веб-странице. Я хочу изменить значение этого элемента.

function myFunc(variable){
  var s= document.getElementById(variable);
  s.value = 'New value'
}

Когда я делаю это, я получаю ошибку, что значение не может быть установлено, потому что объект является нулевым. Но я знаю, что объект не является нулевым, потому что я вижу его в HTML-коде, сгенерированном браузером. В любом случае, я попробовал следующий код для отладки

function myFunc(variable){
  var x = variable;
  var y  = 'This-is-the-real-id'
  alert(x + ', ' + y)
  var s= document.getElementById(x);
  s.value = 'New value'
}

Когда появляется предупреждающее сообщение, оба параметра одинаковы, но я все равно получаю сообщение об ошибке. Но все работает нормально, когда я делаю

  var s= document.getElementById('This-is-the-real-id');
  s.value = 'New value'

Как я могу это исправить, пожалуйста

РЕДАКТИРОВАТЬ

Элемент, для которого я устанавливаю значение, является скрытым полем, и идентификатор определяется динамически при загрузке страницы. Я попытался добавить это в функцию $ (document) .ready, но не работает

извините, это была опечатка jpo
как вы называете myFunc? Iswanto San
Позволять'посмотрим, где вы вызываете функцию (которая, судя по кодумы предоставляем, неимя не имеет) Anthony Grist
Когда вы делаете диагностикуalert() или жеconsole.log() в таких случаях, вы должнывсегда оберните значения некоторыми символами маркера, чтобы вы могли определить, есть ли в строках случайные символы пробела. Так:alert("[" + x + "], [" + y + "]"); Pointy

Ваш Ответ

5   ответов
4



function updateTextarea(element)
{
document.getElementById(element).innerText = document.getElementById("ment").value;
}






<br>





0

Я думаю, что проблема в том, как вы вызываете свою функцию JavaScript. Ваш код выглядит так:


myID должен быть заключен в кавычки.

javascript: ярлык совершенно не нужен mplungjan
18

Дано


затем

function setText(id,newvalue) {
  var s= document.getElementById(id);
  s.innerHTML = newvalue;
}    
window.onload=function() { // or window.addEventListener("load",function() {
  setText("This-is-the-real-id","Hello there");
}

будет делать то, что вы хотите

Дано


затем

function setValue(id,newvalue) {
  var s= document.getElementById(id);
  s.value = newvalue;
}    
window.onload=function() {
  setValue("This-is-the-real-id","Hello there");
}

будет делать то, что вы хотите

Именно то, что я думал. Но мой идентификатор и установить динамически. Но я использовал ту же идею. Но когда я вызываю функцию, документ не может найти элемент с указанным идентификатором jpo
Нам нужно увидеть HTML и обработчик событий (onclick или что-то еще) mplungjan
1

попробуй как ниже это будет работать ...




function displayResult(element)
{
document.getElementById(element).value = 'hi';
}





BYE

<br>

Change



Встроенные обработчики событий - плохая практика. jbabey
55

Если myFunc (переменная) выполняется до того, как текстовое поле будет отображено на странице, вы получите ошибку исключения NULL.


    
    index
    
        function myFunc(variable){
            var s = document.getElementById(variable);
            s.value = "new value";
        }   
        myFunc("id1");
    
    
    
        
    

//Error message: Cannot set property 'value' of null 

Итак, убедитесь, что ваша текстовая область существует на странице, а затем вызовите myFunc, вы можете использовать функцию window.onload или $ (document) .ready. Надеюсь этополезно

Он устанавливается до нажатия кнопки. jpo
@jpo Если идентификатор установлен динамически, вы также должны убедиться, что myFunc вызывается после того, как идентификатор установлен. Вы можете попробовать вызвать myFunc в функции, которая устанавливает идентификатор. Xiaodan Mao
@jpo Когда вы установите идентификатор textarea? До загрузки страницы или после загрузки страницы? До нажатия кнопки или после нажатия кнопки? Xiaodan Mao
Мой код выглядит так @ Html.HiddenFor (m => m.myfield, new {id = "мой ID"}) <тип ввода = "кнопка» OnClick =»JavaScript: myFunc (myID) " значение =»Кнопка "/>. jpo

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