js实现问卷星根据答案自动填写2019年11月

本文介绍了如何通过JS脚本来实现问卷星的自动填写功能。首先需要安装油猴脚本管理器,然后将提供的JS代码添加到脚本中,最后在浏览器中打开问卷星页面,即可自动填充预设答案。注意,此方法可能不适用于微信直接打开的链接,并且当问卷星更新HTML节点时,可能需要更新脚本中的节点名称。
摘要由CSDN通过智能技术生成

参考链接地址:https://www.cnblogs.com/FHC1994/p/11721723.html

 

(过程需要翻墙,问卷星链接需要在浏览器打开,在微信直接打开的链接本脚本无法使用)

 

        ①安装脚本:

        油侯脚本是一款免费的浏览器扩展和最为流行的用户脚本管理器,增强了用户对浏览体验的控制权。油侯脚本下载地址:http://www.tampermonkey.net/

        ②点击图片中红框位置按钮(因为我已经下载了,所以显示的是已安装)

        ③拉到页面最下方,点击添加至Chrome按钮

        ④添加完成后,在Chrome浏览器的右上方有下图所示按钮,点击之后,选择添加新脚本

        ⑤复制如下代码至“添加新脚本”页面内

// ==UserScript==
// @name         问卷星测试——支持input radio checkbox
// @version      1.1
// @description  测试
// @author       蛋片鸡
// @match        https://www.wjx.top/*
// @match        https://www.wjx.cn/*
// @grant        none
// @require      https://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==



/*
**info 第一个参数:对应的填入选项(字符串)
**info 第二个参数:匹配的标题(正则表达式)
**info 第三个参数:(可选),当答题框为单选|多选时匹配的选项(正则表达式)
*/

(function() {
    'use strict';
    const info=[
        ["蛋片鸡",/(姓名)|(名字)/],
        ["单选框_年级",/(年级)/,/(18级)/],
        ["18711111",/(学号)/],
        ["11011001100",/(联系方式)|(电话)|(手机)|(手机号)/],
        ["多选框_你好呀",/(你好呀)/,/(开始)|(中间)|(结束)/]
    ];
    const ini={
        module:".field.ui-field-contain",//每个问题模块
        title:".field-label",//标题
        type:{                              //key对应别名,value对应html的节点
           "input_text":".ui-input-text",
           "radio":".ui-radio",
           "checkbox":".ui-checkbox"
        }
    };
    $(document).ready(function(){
        let itemNum = 0;
        $(ini.module).each(function(){
            itemNum += 1;
            let title=$(this).find(ini.title).text();
            console.log("each循环" + itemNum);
            //判断类别
            let count = 0 ;
            for(let i=0;i<info.length;i++){//匹配用户信息
                if(info[i][1].test(title)){//匹配到一处信息,判断答题框类型,加break!
                   for(let tp in ini.type){
                       let dom=$(this).find(ini.type[tp]);
                       if(dom.length>0){
                           switch(tp){
                               case "input_text":
                                   $("#q"+itemNum)[0].value = info[i][0]; //赋值
                                   break;
                                case "radio":
                                   $(this).find(".ui-radio").each(function(){
                                        if(info[i].length>=3&&info[i][2].test($(this).text())){
                                            var id=$(this).find('input').attr('id');
                                            $("#"+id).prop("checked",true);
                                        }
                                    });
                                    break;
                                case "checkbox":
                                    $(this).find(".ui-checkbox").each(function(){
                                       console.log("outsidebox" + count);
                                        if(info[i].length>=3&&info[i][2].test($(this).text())){
                                            var id=$(this).find('input').attr('id');
                                            $("#"+id).prop("checked",true);
                                        }
                                    });
                                    break;
                                default:console.log("ini.type中没有匹配"+tp+"的键值");
                           }
                           break;
                       }
                   }
                    break;
                }
            }
        });
       //$("#ctlNext")[0].click();
    });
})();

        ⑥在“添加至新脚本”页面中,点击左上角的保存按钮

        ⑦打开问卷星地址,已经实现根据设定的答案,自动填写。

      ⑧额外说明:

        a、因为本人对js不太熟悉,所以有个问题要说明。当我们刷新页面的时候,发现填空题填写了,但是单选和多选是没有选上的,其实在js脚本里面,代码里是已经选上对应的选项了的,只不过不知道样式怎么不显示。(可以通过创建和我一样问题的问卷,然后做一下这份问卷,再提交问卷,最后到问卷后台查看提交的记录中是否有单选和多选记录即可)

        b、因为本js脚本是根据问卷星页面源代码进行编写的,有时候问卷星修改了html节点的命名,就需要去修改本例对应的节点名称,这边附上本例测试时间,问卷星的源代码和问卷星的链接地址(https://www.wjx.cn/m/49588636.aspx),供大家参考对照,修改节点名称。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xht
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值