目标是在一个文本框中输入一定的值(像素或厘米),然后按一个按钮,按钮进行一些数学运算并在不同的文本框中显示结果。
会发生什么,我会得到'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>
答案 0 :(得分:2)
因为您没有将值传递给方法,所以您传递的是html元素。
XmlSerializer serializer = new XmlSerializer(typeof(myXMLClass??));
您需要<HitCode code="4" description="CONSUMER DECLARATION" />
或public static double sumOfSeries(double x, int numTerms){
double result = 0;
if(x<=1 && x>=-1){
double startval=3;
for(int i=0; i<numTerms-1;i++){
result+= (double)(oddevenfact(startval-2)/oddevenfact(startval-1))*(Math.pow(x, startval)/startval);
startval+=2;
}
if(numTerms!=0) result+=x;
}
return result;
}
static double oddevenfact(double x){
if (x>2) return(oddevenfact(x-2) * (long) x);
return((double) x);
}
下一个问题是您在页面加载时读取值,因此您只能获得加载时的值。
因此,您应该阅读这些值并将它们转换为方法内部的数字,而不是在页面加载时。
之后,您的click事件正在调用该函数,而不是引用它。
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);