这是我的html代码,但问题是,如果我添加两个字符串,它总是将50添加为。
function add()
{
var fname=document.getElementById("fname");
var lname = document.getElementById("lname");
var fstring = fname.toString();
var lstring = lname.toString();
var fl = fstring.length;
var ll = lstring.length;
var f1 = parseInt(fl,10);
var l1 = parseInt(ll,10);
document.getElementById("result").innerHTML = f1 + l1;
}
</script>
答案 0 :(得分:2)
因为您没有读取输入值
var fname=document.getElementById("fname");
var lname = document.getElementById("lname");
var fstring = fname.toString(); //<-- turning object to string
var lstring = lname.toString(); //<-- turning object to string
需要
var fname=document.getElementById("fname");
var lname = document.getElementById("lname");
var fstring = fname.value;
var lstring = lname.value;
答案 1 :(得分:0)
我认为问题在于你正在获取Element本身,而不是给定元素的内容。例如,如果fname
是输入,则您需要调用
var fname=document.getElementById("fname").value;
我目前正在猜测的是,在元素上调用toString()
会返回类似[object HTMLInputElement]
的内容,因此在添加时总是会得到相同的长度。
如果您获得的是值而不是元素,那么您的代码应该按预期工作。
答案 2 :(得分:0)
var fstring = fname.toString();
var lstring = lname.toString();
这会尝试将HTMLElement对象转换为字符串,而您可能需要的是存储在这些输入中的值。
var fstring = fname.value;
var lstring = lname.value;
此外,您不需要这样做:
var fl = fstring.length;
var ll = lstring.length;
var f1 = parseInt(fl,10);
var l1 = parseInt(ll,10);
长度属性已经是一个数字。
如果你想得到这两个名字的总长度,那就做吧
total = fstring.length + lstring.length;
如果你想连接它们,请执行
fullname = fstring + " " + lstring;
最后,不要把这些1和小L放在这样的短变量名中,这可能会让人感到很困惑。
答案 3 :(得分:0)
使用此
function add(){
var fname=document.getElementById("fname");
var lname = document.getElementById("lname");
var fstring = fname.value.toString();
var lstring = lname.value.toString();
var fullName = fstring +" "+lstring;
alert(fullName )
}
&#13;
<input type='text' id='fname'/>
<input type='text' id='lname'/>
<input type='button' id='btnOk' onclick='add()' value='OK'/>
&#13;