使用jQuery填充Microsoft Form文本框后无法提交的问题
微软表单程序化填充后提交提示必填项为空的问题
我用jQuery程序化填充微软表单,修改文本框值后,明明文本框已经显示内容,但提交时还是提示“此问题为必填项”,判定文本框为空。
除了手动点击文本框并敲击按键外,我试过各种模拟事件的方法都没用,相关代码如下:
$(document).ready(function () { let questions = null; let choices = null; let selection = null; let textField = null; let submitButton = null; setTimeout(function(){ // 获取表单中的问题数量 questions = $(".office-form-question-element"); console.log("Total number of questions: " + questions.length); // 单选按钮选项 choices = questions.eq(0).find(".office-form-question-choice"); console.log("Total number of choices for question 1: " + choices.length); // 选择“选项1” selection = choices.eq(0).find(":input"); selection.eq(0).click(); // 模拟鼠标点击 // 填充第二个问题的文本 textField = questions.eq(1).find(".office-form-textfield").find(":input"); textField.eq(0).val("Test") // .val() 本应触发元素的change事件 // 提交按钮 submitButton = $(":submit").find(".button-content"); submitButton.click(); }, 2000); // 等待2秒让表单加载完成,避免引用为null });
我已经尝试手动触发各类按键事件,包括以下方式(带或不带.eq(0)):
textField.eq(0).focus(); textField.eq(0).keydown(); textField.eq(0).keypress(); textField.eq(0).keyup(); textField.eq(0).blur(); textField.eq(0).change();
我还试过逐个字符模拟回车键按下,同样无效:
var e = jQuery.Event("keypress"); e.which = 13; // 选择对应的按键 e.keyCode = 13; textField.eq(0).trigger(e);
内容的提问来源于stack exchange,提问作者Trent
相关产品推荐
相关产品推荐

