gpt4 book ai didi

javascript - 像素到厘米的转换脚本不起作用

转载 作者:行者123 更新时间:2023-12-02 13:51:45 26 4
gpt4 key购买 nike

目标是在一个文本框中输入特定值(像素或厘米),然后按按钮,然后按钮进行一些数学运算并将结果显示在不同的文本框中。

结果是,我会得到“NaN”的结果,这意味着我输入的字符串没有被正确转换。我已经尝试了数百种方法来解决此问题,但仍然不起作用。

代码:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Conversion</title>
</head>

<body bgcolor=#FF0000>
<form id="conversions" name="conversions">
Pixel value :
<br>
<input type="text" name="pxvalue" id="pxvalue">
<br>
<input type="submit" name="convertcm" id="convertcm" value="Convert cm to px!">
<input type="submit" name="convertpx" id="convertpx" value="Convert px to cm!">
<br>Centimeter value :
<br>
<input type="text" name="cmvalue" id="cmvalue">
<br>
<br>Output :
<input type="text" name="output" id="output">
</form>

<!-- This is where all the JavaScript code goes -->
<script>
var form = document.getElementById("conversions");
var strcmvalue = form.elements["cmvalue"];
var strpxvalue = form.elements["pxvalue"];
var cmvalue = ToInteger(strcmvalue);
var pxvalue = ToInteger(strpxvalue);
var output = document.getElementById("output");

var ccmbutton = document.getElementById("convertcm").onclick = cm_to_pixel_conversion(cmvalue);
var cpxbutton = document.getElementById("convertpx").onclick = pixel_to_cm_conversion(pxvalue);

var cm_per_pixel = 0.026458333;
var px_per_cm = 37.795275591;

function pixel_to_cm_conversion(pvalue) {
cmconversion = pvalue / px_per_cm;
output.value = cmconversion.toString();
}

function cm_to_pixel_conversion(cvalue) {
pxconversion = cvalue / cm_per_pixel;
output.value = pxconversion.toString();
}

function ToInteger(x) {
x = Number(x);
return x < 0 ? Math.ceil(x) : Math.floor(x);
}
</script>
<!-- End of the JavaScript code-->

</body>

</html>

最佳答案

因为您没有向该方法传递值,所以您传递的是 html 元素。

var strcmvalue = form.elements["cmvalue"];  //reference element
var strpxvalue = form.elements["pxvalue"];
var cmvalue = ToInteger(strcmvalue); //passing element, not the value
var pxvalue = ToInteger(strpxvalue);

您需要strcmvalue.valueform.elements["cmvalue"].value

下一个问题是您在页面加载时读取值,因此您只能获得页面加载时的值。

因此,您应该在方法内部读取这些值并将它们转换为数字,而不是在页面加载时。

之后您的点击事件将调用该函数,而不是引用它。

var ccmbutton = document.getElementById("convertcm").onclick = function () {
var num = parseInt(strcmvalue.value, 10);
cm_to_pixel_conversion(num);
return false;
};

关于javascript - 像素到厘米的转换脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com