Jquery Internet Explorer 6和8 onchange不工作

Jquery Internet Explorer 6和8 onchange不工作,jquery,internet-explorer-8,internet-explorer-6,onchange,Jquery,Internet Explorer 8,Internet Explorer 6,Onchange,我试图使用选择框的onchange方法填充表单上的一些字段 <tr> <td align="left"><label>*Select Branch:</label></td> <td><form:select tabindex="5" path="userInputBranch" onchange="setProcessorBranchLocationOn

我试图使用选择框的onchange方法填充表单上的一些字段

<tr>
                <td align="left"><label>*Select Branch:</label></td>
                <td><form:select tabindex="5" path="userInputBranch" onchange="setProcessorBranchLocationOnChange()">
                        <form:option value="--" label="--" />
                        <form:options items="${ customerAddEntity.selectionContentsBranch}" itemLabel="key" itemValue="value" />
                    </form:select> 
                    <form:hidden path="autoUserInputProcessor" /> 
                    <form:hidden path="autoUserInputCompany" /> 
                    <form:hidden path="autoUserInputLocation" />
                </td>
            </tr>
}

如您所见,我正在尝试使用所选下拉列表值的子字符串值填充隐藏字段autoUserInputProcessor、Company、Location

这在Chrome和IE7中运行良好。我没有得到关于IE6和IE8中隐藏字段的任何更新。我正在使用spring的标记库生成表单。任何帮助都将不胜感激。如果您需要任何其他信息,请告诉我

我将jQuery 1.61.min.js与jQuery表单2.4和jQuery UI 1.8一起使用

下面是Spring生成的select中的一些示例数据

这是一种选择。我无法控制值的格式,它与我收到的值一样

    <option value="06-04-22-id=2504">Oneonta, NY</option>
试试看?它可能会为您处理一些浏览器的怪癖

$('.selectorForTheSelect').change(setProcessorBranchLocationOnChange);

不要忘记删除HTML中select的onchange属性。

首先,userInputBranch不是元素的id 其次,使用jQuery的.val函数,而不是attr'value';
既然您已经在使用jquery,使用.change事件。

我从未见过有人这样编写HTML。你应该确保IE6是一个真正的需求-没有人再使用它了IE6是一个需求。不幸的是:在Spring中使用path变量时,userInputBranch被设置为id。当我将函数调用传递给change函数时,我需要指定空参数?我只是想知道,因为我做了你做的事,但没有成功。好吧,我按照你说的做了,有点成功了。如果我将函数调用放在change方法中,它将不起作用。如果我将函数放在change方法中,它确实会工作。。。像这样。$'userInputBranch'.changefunction{var rawBranch=$'userInputBranch'.attr'value'.split'-';$'autoUserInputProcessor.attr'value',rawBranch[0];$'autoUserInputCompany.attr'value',rawBranch[1];$'autoUserInputLocation.attr'value',rawBranch[2];ifrawBranch[3]!=null{var cBranch=rawBranch[3]。拆分“=”;$”userInputBranch.attr'value',cBranch[1];}警报$”autoUserInputProcessor.val;};关于如何让它以另一种方式工作,或者为什么它不能以另一种方式工作,有什么想法吗?这可能是一个范围问题。setProcessorBranchLocationOnChange是一个全局函数,还是在一个对象中定义的?如果你在这个问题中发布了所有的JS,那么在我看来它看起来是全局的,在这种情况下它应该工作。它不使用这个,所以它不会被忽略您是否尝试过在Firebug或Chrome的开发工具中插入断点并逐步执行?
<input id="autoUserInputProcessor" name="autoUserInputProcessor" type="hidden" value="06">
<input id="autoUserInputCompany" name="autoUserInputCompany" type="hidden" value="04">
<input id="autoUserInputLocation" name="autoUserInputLocation" type="hidden" value="22">
    //window.onbeforeunload = confirmExit;

    function setProcessorBranchLocationOnChange() {
    var rawBranch = $('#userInputBranch').attr('value').split('-');
    $('#autoUserInputProcessor').attr('value', rawBranch[0]);
    $('#autoUserInputCompany').attr('value', rawBranch[1]);
    $('#autoUserInputLocation').attr('value', rawBranch[2]);
    if(rawBranch[3]!=null){
        var cBranch = rawBranch[3].split('=');
        $('#userInputBranch').attr('value', cBranch[1]);
    }

    }

$(function() {
// Set tab indicies that aren't available until load.
$('#customersearchanchor').attr('tabIndex', 120);
$('#logoutLink').attr('tabIndex', 125);

// Set the processor, company, location
// hidden fields on branch select change

setProcessorBranchLocationOnChange();

});
$('.selectorForTheSelect').change(setProcessorBranchLocationOnChange);