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>
展开
 我来答
huyanyanghyy
2012-12-24 · TA获得超过119个赞
知道小有建树答主
回答量:100
采纳率:100%
帮助的人:75.4万
展开全部
那是因为onkeydown的问题,因为在你按下键盘的一瞬间,还没获取到你输入的值,就已经触发了这个方法。要想获取到length,把onkeydown改为onkeyup就行了。
追问
谢谢
fengzhekun123
2012-12-27
知道答主
回答量:14
采纳率:0%
帮助的人:7.3万
展开全部
<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就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
分手的邂逅C89cf
2012-12-25 · TA获得超过148个赞
知道答主
回答量:50
采纳率:100%
帮助的人:46.5万
展开全部
监听下keyup事件吧,应该是keydown事件触发时,文本框还没有被输入内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fq_zxy
2012-12-24
知道答主
回答量:30
采纳率:0%
帮助的人:20.3万
展开全部
onkeydown?按下事件中后置才有赋值操作,所以是0
xx_fn(
you_fn();
赋值_fn();
)

你用onclick试试.
更多追问追答
追问


function f1()
{
alert(document.getElementById('inp1').value.length);
}

追答
onkeydown下还没有完成赋值操作懂么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanjing710
2012-12-25
知道答主
回答量:3
采纳率:0%
帮助的人:5171
展开全部
如果你把文本框放在一个层里,getElementById("层ID号"),试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式