You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qualtrics问卷JavaScript时间问题返回后选中值丢失的解决咨询

问题解决:Qualtrics自定义时间组件返回后值丢失的修复

问题根源是页面返回时,没有把Qualtrics已保存的时间值回显到你的自定义时间组件里。只需在addOnReady函数中添加回显逻辑即可解决,修改后的完整代码如下:

Qualtrics.SurveyEngine.addOnload(function() {
    // 页面加载逻辑暂无需改动
});

Qualtrics.SurveyEngine.addOnReady(function() {
    var Qbd = "input[id='QR~" + this.questionId + "']";
    var $timeComponent = jQuery("#appt-time");
    var $qualtricsHiddenInput = jQuery(Qbd);

    // 隐藏Qualtrics原生输入框
    jQuery("#" + this.questionId + " .InputText").hide();

    // 页面加载完成时,把已保存的时间值回显到自定义组件
    var savedTime = $qualtricsHiddenInput.val();
    if (savedTime) {
        $timeComponent.val(savedTime);
    }

    // 用户修改时间时,同步值到Qualtrics的隐藏输入框(保留原有逻辑)
    $timeComponent.on("change", function() {
        $qualtricsHiddenInput.val(jQuery(this).val());
    });
});

Qualtrics.SurveyEngine.addOnUnload(function() {
    // 页面卸载逻辑暂无需改动
});

关键改动说明

  • 提前获取DOM元素的jQuery对象,避免重复查询DOM,提升性能
  • 新增回显逻辑:页面加载时读取Qualtrics已保存的时间值,若存在则直接设置到你的自定义时间组件#appt-time中,返回页面时就能自动显示之前选择的内容
  • 保留原有的值同步逻辑,确保用户修改时间时,新值能正确存入Qualtrics系统

注意事项

如果你的#appt-time是第三方时间选择器插件(而非原生<input type="time">),可能需要替换成插件对应的赋值方法。比如部分时间插件需要用$timeComponent.timepicker('setTime', savedTime)这类语法来设置值,具体请参照插件文档调整。

内容的提问来源于stack exchange,提问作者Camille

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:45:01