【发布时间】:2011-06-28 22:56:46
【问题描述】:
我正在尝试使用选择框的 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>
Javascript函数:
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]);
}
}
如您所见,我正在尝试使用所选下拉值的 subString 值填充隐藏字段、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>
这是填充字段的示例。
<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">
这是我在页面加载时加载的完整 javascript 文件:
//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();
});
【问题讨论】:
-
我从未见过有人这样写 HTML
-
你应该确保 IE6 是一个真正的需求——没有人再使用它了
-
不幸的是需要IE6 :)
标签: jquery internet-explorer-8 internet-explorer-6 onchange