开发者社区> 问答> 正文

麻烦大神帮看看这段代码,为什么在电脑端可以实现自动勾选,手机端无法执行?

代码如下: export function onChange_checkbox_setvalue({ value }) { //console.log('onChange_checkbox_setvalue', value); // 获取第一个多选按钮的选项 const checkbox1 = document.querySelectorAll('#checkboxField_ld7m204c input[type="checkbox"]'); const checkbox1Values = Array.from(checkbox1).map(checkbox => checkbox.value);

// 获取第二个多选按钮的选项 const checkbox2 = document.querySelectorAll('#checkboxField_lh3nb7hh input[type="checkbox"]'); const checkbox2Values = Array.from(checkbox2).map(checkbox => checkbox.value);

// 找到两个多选按钮的交集 const intersection = checkbox1Values.filter(value => checkbox2Values.includes(value)); intersection.sort();

// 输出交集 console.log('allchecked',intersection); this.$('checkboxField_ld7m204c').setValue(intersection); this.$('checkboxField_lh3nb7hh').setBehavior("DISABLED"); this.$('checkboxField_lh3nb7hh').setValue(intersection); } 最终是希望手机端,电脑端都可以执行输出交集部分 但是目前电脑端是好的,手机端不会自动勾选,为何?

展开
收起
游客qc6otdh7i3y4g 2023-05-04 22:10:34 95 0
3 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    根据您提供的代码,我注意到您使用了 console.log 来输出交集,但是并没有看到您如何在界面上显示交集。如果您希望在手机端和电脑端都可以执行输出交集部分并在界面上显示交集,您需要对代码进行一些修改。

    首先,您需要在界面上添加一个用于显示交集的多选按钮。您可以在表单设计器中添加一个多选按钮,然后将其 ID 设置为 checkboxField_intersection。

    然后,您需要修改 onChange_checkbox_setvalue 函数,以便在界面上显示交集。具体来说,您需要使用 setValue 方法将交集设置为 checkboxField_intersection 的值。修改后的代码如下:

    export function onChange_checkbox_setvalue({ value }) { const checkbox1 = document.querySelectorAll('#checkboxField_ld7m204c input[type="checkbox"]'); const checkbox1Values = Array.from(checkbox1).map(checkbox => checkbox.value); const checkbox2 = document.querySelectorAll('#checkboxField_lh3nb7hh input[type="checkbox"]'); const checkbox2Values = Array.from(checkbox2).map(checkbox => checkbox.value); const intersection = checkbox1Values.filter(value => checkbox2Values.includes(value)); intersection.sort(); console.log('allchecked', intersection); this.$('checkboxField_ld7m204c').setValue(intersection); this.$('checkboxField_lh3nb7hh').setBehavior('DISABLED'); this.$('checkboxField_lh3nb7hh').setValue(intersection); this.$('checkboxField_intersection').setValue(intersection); } 这样修改后,您应该可以在手机端和电脑端都看到交集了。如果您仍然无法在手机端看到交集,请检查您的手机端浏览器是否支持 JavaScript,并且是否启用了 JavaScript。

    2023-05-05 09:55:49
    赞同 展开评论 打赏
  • 您好,这段代码中使用了querySelectorAll方法来查找多选按钮,而在手机端可能会因为浏览器的兼容性问题导致无法正确获取到元素。建议您尝试使用更加通用的方法,比如使用类名来查找元素,或者通过id来查找元素。

    另外,移动设备上的浏览器可能对JavaScript代码的执行有所限制,比如可能会禁用某些自动化操作以保护用户的隐私和安全。您可以检查一下手机端浏览器的设置,确保JavaScript能够正常执行。如果还是无法解决问题,建议您考虑使用React Native等跨平台框架开发应用程序,以确保代码能够在不同平台上都得到良好的兼容性。

    2023-05-05 09:15:39
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    可能是因为手机端浏览器的兼容性问题。建议检查一下手机端浏览器是否支持该代码所用的方法和属性,或者考虑使用更通用的方法实现该功能。另外,可以尝试在手机端打开控制台,看看是否有报错信息。

    2023-05-04 22:21:38
    赞同 展开评论 打赏
问答标签:
问答地址:
关联地址:
问答排行榜
最热
最新

相关电子书

更多
Tangram 立即下载
360手机卫士 插件化漫谈 立即下载
手机京东Crash自动分析处理系统 立即下载