
javascript 的问题 在文本框中输入了一个字符为什么alert(str.length)提示为0;
<body><form><inputid=inp1type=textonkeydown="f1();"></form><scriptlanguage=javascript...
<body>
<form>
<input id=inp1 type=text onkeydown="f1();">
</form>
<script language=javascript>
function f1()
{
var str=document.getElementById("inp1").value;
alert(str.length);
}
</script>
</body> 展开
<form>
<input id=inp1 type=text onkeydown="f1();">
</form>
<script language=javascript>
function f1()
{
var str=document.getElementById("inp1").value;
alert(str.length);
}
</script>
</body> 展开
展开全部
那是因为onkeydown的问题,因为在你按下键盘的一瞬间,还没获取到你输入的值,就已经触发了这个方法。要想获取到length,把onkeydown改为onkeyup就行了。
追问
谢谢
展开全部
<form>
<input id="inp1" type="text" onkeyup="f1();">
</form>
<script language=javascript>
function f1()
{
var str=document.getElementById("inp1").value;
alert(str.length);
}
</script>
粘贴试试,onkeydown事件触发的时候,你就alert(),他就会弹窗,文本框不会输入内容,所以他的长度肯定是0啊,你用onkeyup就可以了
<input id="inp1" type="text" onkeyup="f1();">
</form>
<script language=javascript>
function f1()
{
var str=document.getElementById("inp1").value;
alert(str.length);
}
</script>
粘贴试试,onkeydown事件触发的时候,你就alert(),他就会弹窗,文本框不会输入内容,所以他的长度肯定是0啊,你用onkeyup就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
监听下keyup事件吧,应该是keydown事件触发时,文本框还没有被输入内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
onkeydown?按下事件中后置才有赋值操作,所以是0
xx_fn(
you_fn();
赋值_fn();
)
你用onclick试试.
xx_fn(
you_fn();
赋值_fn();
)
你用onclick试试.
更多追问追答
追问
function f1()
{
alert(document.getElementById('inp1').value.length);
}
追答
onkeydown下还没有完成赋值操作懂么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你把文本框放在一个层里,getElementById("层ID号"),试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询