JS вызов значения формы в переменную - PullRequest
0 голосов
/ 08 июля 2011

Хорошо, ноооцененный вопрос. Но заставил меня замолчать.

Я объявляю значение скрытого поля формы скриптом Js с функцией.

например. Это просто примеры, а не настоящий сценарий.

function myFunction(){
    var text = "hello world";
    var number = 12345;



    document.getElementById('text').value= text; 
    document.getElementById('number').value= number; 

  }

Тогда я хочу иметь возможность использовать значение значения формы в качестве переменной в другом скрипте. Я понимаю, что есть возможность объявить эти переменные глобально. Однако я слышал, что это не так безопасно. Или обтекаемый, как я иду.

Второй пример сценария ...

    var autoText = document.getElementById('text').value;
    var autoNumber = document.getElementById('number').value;

    ...do stuff with variables.

Однако это не работает и возвращает неопределенное значение. Это правильный путь DOM для доступа к значению моих полей формы или мне нужно найти атрибут и его дочерний элемент?

Какие еще варианты мне доступны ??

Спасибо за ваше время. HTML это ...

  <form action="http://mysite/mypath" method="post">

  <input type="text" name="text" id="text" value="">
  <input type="text" name="text" id="number" value="">
  <input type= "submit" name="go" value="go" allign="middle"/>
  </form> 

Ответы [ 3 ]

1 голос
/ 08 июля 2011

Это должно быть хорошо, если предположить, что у вас есть правильный идентификатор для элементов, которые вы хотите.Помните, что идентификаторы должны быть уникальными, иначе могут возникнуть непредсказуемые проблемы.

Убедитесь, что вы запускаете свой код после загрузки DOM.В противном случае элемент может еще не существовать в DOM, и поэтому метод document.getElementById не сможет его найти ..

0 голосов
/ 08 июля 2011

Или вы можете просто сохранить эти данные в закрытии, чтобы обе функции имели доступ к переменной, но она не сохранялась в глобальной области видимости. Вот так:

(function(){
  var text = "blah blah",
      number = 12345;

  function insertValues() {
    document.getElementById('text').value= text; 
    document.getElementById('number').value= number; 
  }
  function otherStuffWithValues() {
    alert(text);
    alert(number);
  }
  insertValues();
  otherStuffWithValues();
}())

Кроме того, вы также можете объявить переменные внутри первой функции, а затем передать переменные во вторую функцию в качестве параметра следующим образом:

function insertValues() {
  var text = "blah blah",
      number = 12345;
  document.getElementById('text').value= text; 
  document.getElementById('number').value= number;
  otherstuff(text,number)
}

function otherstuff(sometext,somenumber) {
  alert(sometext);
  alert(somenumber);
}
insertValues()
0 голосов
/ 08 июля 2011

Я думаю, что вы не установили стартовый скрипт при загрузке страницы.Если так, вы можете использовать этот простой обработчик событий:

window.onload = myFunction;

С myFunction будет работать с вашим кодом выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...