Я пытаюсь заполнить некоторые поля формы, используя метод 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]);
}
}
Как вы видите, я пытаюсь заполнить скрытые поля autoUserInputProcessor, Company, Location значением subString выбранного выпадающего значения.
Это прекрасно работает в Chrome и IE7.Я не получаю никаких обновлений по скрытым полям в IE6 и IE8.Я использую весенний тег lib для генерации формы.Любая помощь будет принята с благодарностью.Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Я использую jQuery 1.61.min.js с jQuery форм 2.4 и jQuery UI 1.8.
Вот некоторые примеры данных из выбора,генерируется Spring.
Это один из вариантов.(У меня нет контроля над форматом значения, оно такое, какое я получил.)
<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();
});