有什么办法能检测输入内容非空且不会引起浏览器报错呢?

来源:1-8 编程练习

JovetWang

2020-03-16 21:38:36

<!DOCTYPE html>
<html>
    <head>
    <meta charset="UTF-8">
    <title>输入框</title>
</head>
<body>
<input type="button" value="点击">
<script type="text/javascript">
//补充代码
var btn=document.getElementsByTagName("input")[0];
btn.onclick=function(){
var words=prompt("请输入文本\n当点击确定时,按钮上的文字会变成输入框输入的内容");
if(words.length!=0){
btn.value=words;
}else{
return;
}
}
</script>
</body>
</html>

因为获取不到null的长度而报错,但是我想不出还有更好的解决办法了

test.html:14 Uncaught TypeError: Cannot read property 'length' of null
    at HTMLInputElement.btn.onclick (test.html:14)


写回答

3回答

好帮手慕粉

2020-03-17

同学你好,关于同学的问题回答如下:

1、当按取消时,控制台报错是因为prompt函数的返回值为null,我们可以打印出来看下:

http://img.mukewang.com/climg/5e708f58092ff9f108950171.jpg

http://img.mukewang.com/climg/5e708f680946059d06950113.jpg

那么这就相当于null.length,所以会报错。

2、修改参考:

http://img.mukewang.com/climg/5e70905709b4b0bb08370329.jpg

同学再试下。

祝学习愉快~

0

好帮手慕粉

2020-03-17

同学你好,如果不要提示的话,同学第一次的代码是正确的呀,老师这边测试的输入为空没有报错:

http://img.mukewang.com/climg/5e703a040947c7b207430442.jpg

同学是不是贴错代码了呢?建议同学再检查下。

祝学习愉快~

0
hovetWang
h 点击取消后返回null,浏览器就会报错。
h020-03-17
共1条回复

好帮手慕粉

2020-03-17

同学你好,参考如下:

http://img.mukewang.com/climg/5e70304e09e0638c06570326.jpg

http://img.mukewang.com/climg/5e70305b098fc3cb10090446.jpg

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

0
hovetWang
h 如果不alert呢,就是未输入的情况下不进行任何操作。
h020-03-17
共1条回复

0 学习 · 40143 问题

查看课程