Javascript 华氏温度到摄氏温度功能未运行
Java脚本函数未正常运行。我调用的函数倾向于将华氏温度转换为摄氏温度。 im无法从文本框中获取值。Javascript 华氏温度到摄氏温度功能未运行,javascript,html,Javascript,Html,Java脚本函数未正常运行。我调用的函数倾向于将华氏温度转换为摄氏温度。 im无法从文本框中获取值。 函数toCelsius(f){ 申报表(5/9)*(f-32); } document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value); 使用javascript函数不必使用表单。 我是这样做的: Javascript: function toCelsius(f) {
函数toCelsius(f){
申报表(5/9)*(f-32);
}
document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value);
使用javascript函数不必使用表单。
我是这样做的:
Javascript:
function toCelsius(f) {
return (5 / 9) * (f - 32);
}
function convert() {
document.getElementById("demo").innerHTML = toCelsius(document.getElementById("temp").value);
}
<p id="demo"></p>
<input type="text" id="temp" />
<input type="button" id="submit" value="Convert" onclick="convert()" />
HTML:
function toCelsius(f) {
return (5 / 9) * (f - 32);
}
function convert() {
document.getElementById("demo").innerHTML = toCelsius(document.getElementById("temp").value);
}
<p id="demo"></p>
<input type="text" id="temp" />
<input type="button" id="submit" value="Convert" onclick="convert()" />
您需要完全加载DOM树才能使用元素。当您在#demo
中写入时,表单尚未呈现。
要解决此问题,可以将javascript附加到dom内容加载事件,或将其移动到代码底部:
<p id="demo"> </p>
<form onsubmit="makeSubmit()">
<input type="text" id="temp">
<input type="submit" id="submit">
</form>
<script>
function toCelsius(f) {
return (5 / 9) * (f - 32);
}
function makeSubmit() {
document.getElementById("demo").innerHTML = toCelsius(document.getElementById("temp").value);
return false; //needs to prevent submit form
}
</script>
函数toCelsius(f){
申报表(5/9)*(f-32);
}
函数makeSubmit(){
document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value);
返回false;//需要防止提交表单
}
在页面上呈现元素之前,您正在运行脚本。尝试将脚本放在
标记之前。也。脚本的一部分在大括号外?显示一个垃圾值,但不起作用。尽管它起作用,但问题不在提交事件中,而是在DOM中包含javascript的顺序。因为JSFIDLE在DOM完全加载时会重新排列js,所以在您的小提琴中是有效的。@MarcosPérezGude javascript的顺序仍然正确。这就是问题所在。我只是在本地进行了测试,但不得不用固定的js代码替换js代码,并更改提交按钮以触发convert
功能。如果希望进行测试,您可以在本地尝试。不,问题出在这一行document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value)代码>,执行此行时,document.getElementById(“temp”)
未定义,因为DOM未完全加载。在submit事件中,用户丢失了防止默认操作,例如返回false,但这不是问题所在。当然在不做任何更改的情况下测试它。P.D.注意,我没有投你反对票,我只是在评论。