2013-09-14 5 views
0

У меня есть форма с двумя текстовыми полями. Я хочу ввести число в одном поле, нажать ссылку «Преобразовать» и вычислить номер в первом поле «Цельсия» и поместить его во второе текстовое поле. Пока это не работает, и я чувствую, что есть что-то маленькое, что мне не хватает ... Что я могу сделать?Вычислить значение, введенное в текстовое поле и помещенное в другое текстовое поле?

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<style type="text/css"> 
body 
{ 
background-color: white; 
} 

h2 
{ 
position: absolute; 
left:200px; 
top:5px; 
color: cadetblue; 
} 
p 
{ 
text-align: center; 
font-family: times new roman; 
color: black; 
} 
</style> 
<script> 
     function f2cCalc(input) 
    { 
     var fbox = document.getElementById(input); 
     var cbox = document.getElementById(cinput); 
     var f = parseInt(fbox.value); 
     var cel = Math.round(5/9*(f-32)); 
     document.getElementById(cbox).value=cel; 
     } 
</script> 
    </head> 
    <body> 
     <form method="get" action=""> 

    <h2>Temp calculator</h2> 
<br /> 
<br /> 
<br/> 
<br/> 
<br/> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     F<input id="finput" type="number" STYLE="background-color: cadetblue; color: green;" value="0"/> 
     &nbsp;&nbsp;&nbsp;&nbsp; 
     C<input id="cinput" type="number" STYLE="background-color: cadetblue; color: green;" value="0"/> 

     <a href="javascript:f2cCalc(finput)">Convert</a> 

     </form> 
    </body> 
</html> 

enter code here 
+1

Что значит «не работает» означает? Какие ошибки вы получаете? Вы пробовали отладку через консоль браузера? – j08691

ответ

0

Эти две линии могут быть причиной вашей проблемы:

var fbox = document.getElementById(input); 
var cbox = document.getElementById(cinput); 

Изменить на:

var fbox = document.getElementById(input); 
var cbox = document.getElementById('cinput'); 

В основном JavaScript пытается загрузить идентификатор из переменной вместо DOM.

+0

Я пробовал это, как и вышеупомянутый комментарий, и до сих пор ничего не происходит, когда я нажимаю «Конвертировать» ... Я думаю, что у меня это работает! Вот что я изменил: function f2cCalc (input) { var fbox = input; var cbox = document.getElementById ('cinput'); var f = parseInt (fbox.value); var cel = Math.round (5/9 * (f-32)); cbox.value = "" + cel; – falkon114

0

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

Изменить

var fbox = document.getElementById(input); 
var cbox = document.getElementById(cinput); 
document.getElementById(cbox).value=cel; 

в

var fbox = document.getElementById('finput'); 
var cbox = document.getElementById('cinput'); 
cbox.value=cel; 

DEMO FIDDLE

+0

Все еще ничего не делает, когда я нажимаю кнопку «Конвертировать» ... =/EDIT. Я получил его, вот что я сделал: function f2cCalc (input) { var fbox = input; var cbox = document.getElementById ('cinput'); var f = parseInt (fbox.value); var cel = Math.round (5/9 * (f-32)); cbox.значение = "" + чел; } – falkon114

+0

@ user2537100 Работает отлично. проверьте демонстрационную скрипку один раз. какой браузер вы используете? – Unknown

0

вам нужно немного модификации

<a href="javascript:f2cCalc('finput')">Convert</a> 

И

var cbox = document.getElementById('cinput'); 

Проверить это fiddle

0

Или вы можете получить Милашка с отрезанного хлеба; Jquery. Вставьте этот плохой мальчик в голову тег:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

На самом деле, у меня есть fiddle для вас. JQuery делает вещи намного проще. Надеюсь, что это работает для вас.

0

Ваш вызов функции должен быть как:

<a href="javascript:f2cCalc('finput')">Convert</a> 
Смежные вопросы