Как преобразовать числа Javascript в строку и передать ее в поле ввода

#javascript

Вопрос:

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

 function convertData() {
  var distance = document.getElementById('distance').innerHTML;
  var mile     = 5280;
  var result   = distance /mile;
  document.getElementById('distance').innerHTML = resu<
};
 

и, исходя из ответа здесь, я пытаюсь реализовать это в

document.getElementById пометьте в начале документа, найденного здесь..

 <input type="button" value='Convert to Miles' onclick="convertData();">

<input id="distance" type="number" value=453454>
 

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

какие-нибудь советы или мысли?

Ответ №1:

 function convertData() {
  var distance = document.getElementById('distance').value;
  var mile = 5280;
  var result = distance / mile;
  document.getElementById('answer').innerHTML =  resu<
}; 
 <div id="answer"></div>
<input type="button" value='Convert to Miles' onclick="convertData();">
<input id="distance" type="number" value=453454> 

Я буду рекомендовать отобразить ответ в другом элементе и оставить ввод свободным для пользователя, чтобы он мог вносить изменения.

Ответ №2:

самый простой способ

входные данные html с a type=number обладают valueAsNumber свойством прямой обработки их числового значения.
(Существует также valueAsDate для тех type=date , кто )

 const
  distance_el = document.getElementById('distance')
,  mile       = 5280
   ;
function convertData()
  {
  distance_el.valueAsNumber /= mile
  } 
 <input type="button" value="Convert to Miles" onclick="convertData();">

<input id="distance" type="number" value="453454"> 

Ответ №3:

Вы должны получать/устанавливать свойство ввода value , а не innerHTML .

innerHTML Свойство используется для возврата HTML-содержимого элемента, в то время value как свойство используется для возврата значения текстового поля.

 function convertData() {
  var distance = document.getElementById('distance').value;
  var mile = 5280;
  var result = distance / mile;
  document.getElementById('distance').value = resu<
}; 
 <input type="button" value='Convert to Miles' onclick="convertData();">
<input id="distance" type="number" value=453454> 

Упрощенная версия:

 function convertData(t) {
  t.nextElementSibling.value = t.nextElementSibling.value/5280;
}; 
 <input type="button" value='Convert to Miles' onclick="convertData(this);">
<input id="distance" type="number" value=453454> 

Комментарии:

1. также ему может понадобиться функция parseInt()

2. Хорошо, спасибо, ребята. все предложения сработали. Однако знаете ли вы, ребята, как очистить поле ввода, как только кто-то вводит номер?