问:表单验证,一行文本不能输入超过三十个字,如果超过三十个字就只取前三十个字
下面这两种方法正确吗?
两个图片好像贴的是同一个代码,可以把数组的定义放到if-else语句的前面,然后把getElementBy改为getElementById应该就可以了。
测试代码如下:
参考链接:
https://www.cnblogs.com/miaosen/p/10912830.html
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
function a(){
var n= document.getElementById('textarea').value;
// https://www.cnblogs.com/miaosen/p/10912830.html
// 创建一个长度为30的数组
var ch = new Array(30);
if(n.length<=30){
alert(n);
}else{
for(var i=0;i<30;i++){
ch[i] = n.charAt(i); // 将n当前位置的值存入数组
}
alert(ch); // 打印数组内容
}
}
</script>
</head>
<body>
<form>
<!--
https://cloud.tencent.com/developer/beta/article/2174648
https://baike.baidu.com/item/HTML%E6%B3%A8%E9%87%8A/5015186
使用失去焦点事件,触发函数a()来显示文本框前30个字符
-->
<input type="value" name="text" id="textarea" onblur="a()"/>
</form>
</body>
</html>
else里面不对 ,直接alert(n.substr(0,30));
else里面 for循环里 var 的char数组应该放到外面 每次赋值给这个数组 char[i]=n.charat(i)