Передать значение переменной javascript во скрытое значение типа ввода - PullRequest
61 голосов
/ 14 октября 2011

Я бы хотел присвоить значение произведения двух целых чисел скрытому полю уже в html-документе. Я думал о получении значения переменной javascript, а затем о передаче его на скрытый тип ввода. Мне трудно объяснить, но вот как это должно работать:

Пример сценария

 <script type="text/javascript">
 function product(a,b){
      return a*b;
 }
 </script>

выше вычисляет продукт, и я хочу, чтобы продукт находился в скрытом поле.

<input type="hidden" value="[return value from product function]">

Как это возможно?

Ответы [ 8 ]

116 голосов
/ 14 октября 2011

Вы можете присвоить скрытому полю идентификатор:

<input type="hidden" id="myField" value="" />

, а затем, когда вы хотите присвоить его значение:

document.getElementById('myField').value = product(2, 3);

Убедитесь, что вы выполняете это назначение послеDOM полностью загружен, например, в событии window.load.

9 голосов
/ 14 октября 2011

, если у вас уже есть этот скрытый ввод:

function product(a, b) {
   return a * b;
}
function setInputValue(input_id, val) {
    document.getElementById(input_id).setAttribute('value', val);
}

Если нет, вы можете создать его, добавить к телу и установить его значение:

function addInput(val) {
    var input = document.createElement('input');
    input.setAttribute('type', 'hidden');
    input.setAttribute('value', val);
    document.body.appendChild(input);
}

И тогда вы можете использовать (в зависимости от случая):

addInput(product(2, 3)); // if you want to create the input
// or
setInputValue('input_id', product(2, 3)); 
3 голосов
/ 14 октября 2011

Вы можете сделать это так:

<script type="text/javascript">
     function product(a,b)
     {
     return a*b;
     }
    document.getElementById('myvalue').value = product(a,b);
 </script>

 <input type="hidden" value="THE OUTPUT OF PRODUCT FUNCTION" id="myvalue">
2 голосов
/ 02 июня 2015

Посмотрите на этой странице jQuery несколько интересных примеров того, как играть с атрибутом value и как вызвать it:

http://api.jquery.com/val/

В противном случае - если вы хотите использовать jQuery вместо javascript при передаче переменных на вход любого типа, используйте следующее для установки значения входа для события click(), submit() и др .:

на каком-то событии; назначьте или установите значение входа:

$('#inputid').val($('#idB').text());

где:

<input id = "inputid" type = "hidden" />

<div id = "idB">This text will be passed to the input</div>

Используя такой подход, убедитесь, что в вводе html уже не указано значение или отключенный атрибут, очевидно.

Остерегайтесь различий между .html() и .text() при работе с HTML-формами.

2 голосов
/ 09 февраля 2014

Скрытое поле:

<input type="hidden" name="year" id="year">

Скрипт:

<script type="text/javascript">
     var year = new Date();
     document.getElementById("year").value=(year.getFullYear());
</script>
1 голос
/ 02 февраля 2013
<script type="text/javascript">
  function product(x,y)
  {
   return x*y;
  }
 document.getElementById('myvalue').value = product(x,y);
 </script>

 <input type="hidden" value="THE OUTPUT OF PRODUCT FUNCTION" id="myvalue">
1 голос
/ 14 октября 2011

добавить идентификатор для входа

var multi = product(2,3);
document.getElementById('id').value=multi;
0 голосов
/ 23 мая 2017
//prompts for input in javascript
test=prompt("Enter a value?","some string");

//passes javascript to a hidden field.
document.getElementById('myField').value = test;

//prompts for input in javascript
test2=prompt("Enter a value?","some string2");

//passes javascript to a hidden field
document.getElementById('myField').value = test2;

//prints output
document.write("hello, "+test+test2;

теперь это сбивает с толку, но это должно работать ...

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