永洪社区
标题:
如何解决列表参数组件length方法获取长度不一致问题
[打印本页]
作者:
永洪tech-zyc
时间:
2021-4-25 15:24
标题:
如何解决列表参数组件length方法获取长度不一致问题
不知道大家在使用列表参数组件时有没有遇到单选或者多选时 利用length方法判断的长度存在问题。
如下图所示:
(, 下载次数: 678)
上传
点击文件名下载附件
当列表参数勾选一个时,输出length竟然为4 而不是 1!!!
多选时输出的length长度就是正常的。
(, 下载次数: 633)
上传
点击文件名下载附件
这是什么原因呢?原来这是有js语法特性导致的。
javascript是弱类型,所以会根据值确定变量的类型,无法固定为数组。
当单选时,列表参数值是字符串,因此他输出的length就是字符串的长度,而多选时他是数组,数组的length就是正确的勾选值个数。
这时我们可以通过自定义一个方法,人为的规避这个问题,在方法中提前判断值的类型是数组还是字符串。如下示例:
function
plen
(
pm
)
{
if
(
pm
==
null
)
{
return
0
;
}
if
(
pm instanceof Array
)
{
return
pm.length;
}
return
1
;
}
测试效果如下:
(, 下载次数: 659)
上传
点击文件名下载附件
(, 下载次数: 614)
上传
点击文件名下载附件
单选多选均可正常
作者:
雨淋的猫
时间:
2022-9-1 09:55
1
作者:
yhdata_i7P1MLIv
时间:
2023-8-2 14:07
作者:
烽火连三月
时间:
2023-8-4 11:15
收到,多谢分享!
作者:
烽火连三月
时间:
2023-8-4 11:15
收到,多谢分享!
作者:
oscarxu
时间:
2024-2-8 19:13
666
作者:
oscarxu
时间:
2024-2-11 12:29
新年快乐
欢迎光临 永洪社区 (https://club.yonghongtech.com/)
Powered by Discuz! X3.4