У меня есть эта функция в моем Javascript Code, который обновляет поля html с их новыми значениями всякий раз, когда он вызывается. Проблема не может быть связана с самой функцией, потому что она блестяще работает в каждом разделе, кроме одного. Вот функция JS:Непоследовательные результаты функции JavaScript
function updateFields() {
document.getElementById('bf').innerHTML = bill.time[breakfast][bill.pointPartOfWeek];
document.getElementById('ln').innerHTML = bill.time[lunch][bill.pointPartOfWeek];
document.getElementById('dn').innerHTML = bill.time[dinner][bill.pointPartOfWeek];
document.getElementById('se').innerHTML = bill.time[special][bill.pointPartOfWeek];
document.getElementById('fdr').innerHTML = bill.time[full][bill.pointPartOfWeek];
document.getElementById('cost').innerHTML = bill.cost;
}
И он выполняет штраф в следующем случае:
<select onchange='if(this.selectedIndex == 0) {bill.unholiday();updateFields()} else { bill.holiday();updateFields()}' id='date' name='date'>
<option value='else'>Jan. 02 - Nov. 20</option>
<option value='christmas'>Nov. 20 - Jan. 01</option>
</select>
но в этом очень похожий код, последняя строка функции, кажется, не выполнить (это не обновляет поле затрат, но обновления всего остального)
<select onchange='if(this.selectedIndex == 0) {bill.pointPartOfWeek = 1;} else { bill.pointPartOfWeek = 2;}updateFields();alert(updateFields());' id='day' name='day'>
<option value='0'>Monday thru Thursday</option>
<option value='1'>Friday, Saturday, or Sunday</option>
</select>
<br />
как ни странно, сам общая переменная стоимость обновляются, но поле, которое представляет собой переменный не является. Если вы используете другой раздел страницы, который не изменит значение общей стоимости, но снова вызовет функцию updateFields, поле затрат затем будет корректно обновляться. Это должна быть проблема с вызванной функцией.
Примечание: мы знаем, что функция выполняется потому, что она делает 5 из 6 вещей, которые она должна выполнять. Это странная проблема.
Редактировать: Пастерины для всей страницы будут полезны. Вот оно:
Я думал то же самое и искал документ для дублирования записей. Насколько я могу судить, существует только один элемент с идентификатором «стоимость». Однако есть элемент с атрибутом name «cost». Я попытался изменить это на «цену». Тем не менее проблема осталась. – objectivesea 2008-10-15 21:45:17
Интересно, на самом деле я думаю, что в IE был какой-то странный бит, где document.getElementById() получает элементы, соответствующие атрибуту name. Я посмотрю, что я могу сделать с вашей ссылкой. – 2008-10-15 21:49:26