【问题标题】:javascript html variable form entryjavascript html 变量表单项
【发布时间】:2015-08-14 15:54:39
【问题描述】:

我有一个带有选项的 html 表单选择选项下拉列表: 运输与物流股 TRANSFLO 解决方案业务部 西部事业部 其他

我有以下 javascript,它根据上述选择将值输入到职称变量中。

var data = {
    "Transportation & Logistics Unit": [
        'Transportation &',
        'Logistics Unit'
    ],
    "TRANSFLO Solutions Business Unit": [
        'TRANSFLO Solutions',
        'Business Unit'
    ],
    "Western Business Unit": [
        'Western Business Unit',
        ''
    ],
    "Other": [
        document.getElementById('t1_t2_c_p_variableTextForm_pageTpl_v06CompanyDivision_other').value,
        ''
    ],
    "Western Canada Petroleum Solutions": [
        'Western Canada Petroleum Solutions',
        ''
    ]
}

函数是:

function SetJobTitle() {
    var choice = spec['v06CompanyDivision'].selectedText();
    spec['v02JobTitle1'].value = data[choice][0];
    spec['v03JobTitle2'].value = data[choice][1];
}

当用户选择“选项”时,会出现一个文本输入框,以便输入文本。输入框的元素id为“t1_t2_c_p_variableTextForm_pageTpl_v06CompanyDivision_other”。

“其他”的上述 var 数据值不起作用,所以我想知道您是否能说出我遗漏了什么。

谢谢

编辑:

我可以通过像这样更改 SetJobTitle 函数将某些内容放入 spec['v02JobTitle1'].value 中:

function SetJobTitle() {
    var choice == spec['v06CompanyDivision'].selectedText();
    if (data[choice][0] = 'Other') {
        spec['v02JobTitle1'].value =       document.getElementById('t1_t2_c_p_variableTextForm_pageTpl_v06CompanyDivision_other').value;
    } else {
        spec['v02JobTitle1'].value = data[choice][0];
        spec['v03JobTitle2'].value = data[choice][1];
    }
}

但是,它似乎有点尴尬,因为它是由不断变化的下拉菜单触发的。如果我只是编辑输入框中的值,它不会改变。在这种情况下我能做些什么吗?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您应该在选择后从您的输入框中获取值或聆听它的变化并处理它

    所以你的代码

    document.getElementById('t1_t2_c_p_variableTextForm_pageTpl_v06CompanyDivision_other').value
    

    应在每次更改输入框或任何其他事件触发和接收值时调用,您应该将其放置在您需要的位置

    【讨论】:

    • 我确实有这个触发:spec['v06CompanyDivision'].onchange = SetJobTitle;
    【解决方案2】:

    data 中的Other 条目更改为"Other": [function(){return document.getElementById('t1_t2_c_p_variableTextForm_pageTpl_v06CompanyDivision_other').value},'']

    function SetJobTitle() {
        var choice = spec['v06CompanyDivision'].selectedText();
        if(choice === 'Other')
            spec['v02JobTitle1'].value = data[choice][0]();
        else
            spec['v02JobTitle1'].value = data[choice][0];
        spec['v03JobTitle2'].value = data[choice][1];
    }
    

    这应该对您有所帮助。虽然它是一个讨厌的代码。

    【讨论】:

    • javascript 位于产生错误的应用程序环境中,所以我只得到一个错误代码编号,没有任何解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    相关资源
    最近更新 更多