选择后,字段值更新停止

时间:2013-02-28 19:06:12

标签: javascript forms

我正在处理一个主要表单,并且有一个令人讨厌的错误,我似乎无法理解。

每次对某些字段进行更改时,都会更新隐藏字段以反映此更改。但是,如果您执行某些步骤,那么该字段将停止更新,我不知道。

JSfiddle无法在元素javascript中使用,所以这里是一个测试页面:(链接已删除)。

我取消隐藏了自动更新的字段,它是textarea正下方的字段。

重现的步骤:

  • 选择美国作为原籍国。
  • 从“你在运送什么?”中选择任何选项。字段。
  • 从“告诉我们更多”字段中选择“添加我自己的描述”。
  • 编辑textarea并取消聚焦字段以查看其下方的字段 更新内容。
  • 现在,再次打开“告诉我们更多”下拉菜单,这次选择任何一个 汽车制造。
  • 将出现“模型”下拉列表,您可以从中选择或忽略 看看“隐藏”字段如何更新。
  • 返回“告诉我们更多”字段,再次选择“添加我的 自己的描述“。
  • 编辑textarea以查找隐藏字段不再自行更新。
  • 您必须再次选择一个make,然后重新选择自己的描述 强制它更新textarea所做的任何更改。

如何阻止这种打破?

1 个答案:

答案 0 :(得分:1)

您的错误在此行var strModel = model.options[model.selectedIndex].text;

它说它无法读取未定义的属性text。在代码中的某处,您需要定义model.selectedIndex

我在这里看到你在make事件中定义了onblur

info.onblur=function() {
    if (info.value=="") info.value=info.defaultValue;
    if (info.value!=info.defaultValue) {
        Show('quote_form_Make');
        BuildMakeSelect();
        make.selectedIndex = 2;
    }
}

当我选择make时,模型菜单显示为“Model”,结果如下:

document.getElementById('quote_form_Model').selectedIndex // 0

当我选择“添加您自己的描述”时,结果如下:

document.getElementById('quote_form_Model').selectedIndex // -1

这应该让你开始调试冒险。