Javascript 即使在解析输入值I';我得到了楠的回答

Javascript 即使在解析输入值I';我得到了楠的回答,javascript,html,dom,Javascript,Html,Dom,//html代码 算计 两个数字相加 如果我们在任何事件之前访问输入字段值,我们将得到未定义的字段值,因此我们可以在生成click事件之后访问字段值 var btn=document.getElementById(“ans”); btn.addEventListener(“单击”,函数(){ var x=parseFloat(document.getElementById(“n1”).value); var y=parseFloat(document.getElementById(“n2”

//html代码

算计

两个数字相加


如果我们在任何事件之前访问输入字段值,我们将得到未定义的字段值,因此我们可以在生成click事件之后访问字段值


var btn=document.getElementById(“ans”);
btn.addEventListener(“单击”,函数(){
var x=parseFloat(document.getElementById(“n1”).value);
var y=parseFloat(document.getElementById(“n2”).value);
var result=x+y;//表达式
console.log(result);//输出为'Nan'
console.log(typeof(result));//输出为'number'
});

这里的问题是,您已经将默认值设置为
x
y
作为开头的空字符串,如:

var x = parseFloat(document.getElementById("n1").value); //input value1
var y = parseFloat(document.getElementById("n2").value); //input value2
因此,无论您在输入中输入什么值,都会得到
Nan
。以下是目前正在发生的情况:

var x=parseFloat(“”)//输入值1
变量y=parseFloat(“”)//输入值2
var btn=document.getElementById(“ans”);
btn.addEventListener(“单击”,函数(){
var result=x+y;//表达式
console.log(result);//输出为'Nan'
console.log(typeof(result));//输出为'number'
});
添加
让btn=document.getElementById(“ans”)
btn.addEventListener(“单击”,函数(){
设x=getFloat(getElVal(“n1”))
设y=getFloat(getElVal(“n2”))
设结果=x+y
如果(!isNaN(x)&&!isNaN(y)){
console.log('valid op')
}
控制台日志(结果);
控制台日志(类型(结果))
函数getFloat(val){
返回浮点值(val)
}
函数getElVal(id){
ele=document.getElementById(id)
返回元素?元素值:未定义
}
})


添加
我已输入整数作为输入。输入字段中的n1=10&n2=5如果我在事件发生之前声明变量并解析事件中的值,那么它也应该可以正常工作
var x = parseFloat(document.getElementById("n1").value); //input value1
var y = parseFloat(document.getElementById("n2").value); //input value2