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

使用JavaScript在Wix中输出文本框不生效问题求助

问题:Wix中计算结果无法显示到目标文本框

我尝试通过下拉框和文本框获取用户输入进行计算,但结果无法显示到目标文本框中。以下是我用于输出值的代码,但文本框并未发生变化:

$w("#text5").text = (100 * (1 - Treatment1Year1)) >= 90 ? ">90%" : (100 * (1 - Treatment1Year1)) <= 10 ? "<10%" : (100 * (1 - Treatment1Year1)) + "%";

$w("#text6").text = (100 * (1 - Treatment1Year3)) >= 90 ? ">90%" : (100 * (1 - Treatment1Year3)) <= 10 ? "<10%" : (100 * (1 - Treatment1Year3)) + "%";

$w("#text7").text = (100 * (1 - Treatment2Year1)) >= 90 ? ">90%" : (100 * (1 - Treatment2Year1)) <= 10 ? "<10%" : (100 * (1 - Treatment2Year1)) + "%";

$w("#text8").text = (100 * (1 - Treatment2Year3)) >= 90 ? ">90%" : (100 * (1 - Treatment2Year3)) <= 10 ? "<10%" : (100 * (1 - Treatment2Year3)) + "%";

我是JavaScript和Wix新手,恳请各位提供帮助。


可能的原因及解决方法

1. 输入变量未正确转换为数值

Treatment1Year1这类变量如果直接从文本框/下拉框获取,默认是字符串类型,会导致计算出错。需要转换为数字类型,同时处理非数字输入的情况:

// 示例:从文本框获取值并转换为数字,默认值设为0
const Treatment1Year1 = parseFloat($w("#treatment1Year1Input").value) || 0;

2. 代码未绑定触发事件

Wix中计算逻辑需要绑定到用户交互事件(比如输入框的onChange、按钮的onClick),否则代码只会在页面加载时执行一次。示例:

$w.onReady(function () {
  // 绑定输入框变化事件,实时计算
  $w("#treatment1Year1Input").onUpdate(() => {
    const Treatment1Year1 = parseFloat($w("#treatment1Year1Input").value) || 0;
    $w("#text5").text = (100 * (1 - Treatment1Year1)) >= 90 ? ">90%" : 
                        (100 * (1 - Treatment1Year1)) <= 10 ? "<10%" : 
                        `${(100 * (1 - Treatment1Year1)).toFixed(1)}%`;
  });
});

3. 控件ID不匹配

检查#text5、#text6等文本框ID,是否与Wix编辑器中控件的实际ID完全一致(ID区分大小写)。

4. 调试排查问题

在代码中添加console.log(),打印变量值和计算结果,通过Wix开发者工具查看是否有错误或异常值:

console.log("Treatment1Year1值:", Treatment1Year1);
console.log("计算结果:", 100*(1-Treatment1Year1));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:00:13