【发布时间】:2014-03-18 14:19:23
【问题描述】:
我正在尝试制作表单,使用 HTML 和 JavaScript 并使用下拉列表。所以我一遍又一遍地搜索,我发现了类似的问题,但无法从答案中解决任何问题。所以,我希望通过下拉菜单选择我的表格,这样我就可以得到“公里”并将它们转换为“英里”或“英尺”,这取决于我选择的内容。我让它适用于 Temparature 形式,但仅适用于从摄氏度到 Farenhait 的转换,其他方式不起作用,我不知道为什么。这是 HTML 代码:
<body onload="startTime()">
<p>Temparature</p>
<br />
<form>
<input id="c" name="c" onkeyup="preveri()">
<select id="chose1">
<option></option>
<option value="C">Celzija</option>
<option value="F">Farenhait</option>
</select>
<br />equals
<br />
<input id="f" name="f" onkeyup="preveri()">
<select id="chose2">
<option></option>
<option value="C">Celzija</option>
<option value="F">Farenhait</option>
</select>
</form>
<br />
<p>Lenght</p>
<form>
<input id="k" name="k" onkeyup="preveri1()">
<select id="chose2">
<option></option>
<option value="K">Kilometer</option>
<option value="M">Miles</option>
</select>
<br />equals
<br />
<input id="m" name="m" onkeyup="preveri1()">
<select id="chose2">
<option></option>
<option value="K">Kilometer</option>
<option value="M">Miles</option>
</select>
</form>
<option value="K">Kilometer</option>
<option value="M">Miles</option>
<div id="txt"></div>
</body>
这里是 JavaScript 代码:
function preveri(neke)
{
neke=document.getElementById("chose1").value;
if(neke=="C")
{
fahr=document.getElementById("c").value * 9 / 5 + 32;
document.getElementById("f").value=Math.round(fahr);
}else
{
cels=(document.getElementById("f").value -32) * 5 / 9;
document.getElementById("c").value=Math.round(cels);
}
}
function preveri1(neke1)
{
neke1=document.getElementById("chose2").value;
if(neke1=="K")
{
kilo=document.getElementById("k").value * 0.621371;
document.getElementById("m").value=Math.round(kilo);
}else
{
mile=(document.getElementById("m").value) / 0.621371;
document.getElementById("k").value=Math.round(mile);
}
}
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// doda 0 pred števila<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
}
function checkTime(i)
{
if (i<10)
{
i="0" + i;
}
return i;
}
出了点问题,我不知道是什么,如果你能好心地帮助我,我是 JavaScript 的初学者。
【问题讨论】:
-
您的代码中有一些错误。对于初学者,您调用的是 preveri(),但函数签名是 preveri(neke)。为什么要使用 2 个表单?
标签: javascript html function validation webpage