У меня есть DIV, который скользит без проблем.Это открывает некоторые дополнительные возможности для посетителя.После отправки формы, если, например, обнаружена ошибка, посетитель нажимает кнопку возврата в браузере, чтобы исправить ее.Элемент div со всеми дополнительными параметрами находится не в том состоянии, в котором он последний раз оставался, а свернут.Любые идеи, как я могу предотвратить это?
$("#sendChange").click(function () {
$("#sendSpec").slideToggle("slow");
if($('#sendWhen').html() == 'IMMEDIATLY'){
$('#sendWhen').html('AS SPECIFIED');
}else{
$('#sendWhen').html('IMMEDIATLY');
}
return false;
});
<div class="fcenter stdBox line25" style="margin-bottom:0px;" id="emlOptions">
<div>
<label class="lab">Send email: </label><span id="sendWhen" class="blue">IMMEDIATLY</span> <a href="#" id="sendChange">[change]</a>
</div>
<div style="display:none" id="sendSpec">
<label for="userTz" class="lab">Timezone: </label><select name="userTz" id="userTz" onchange="tzChange(this.value)" class="field" >
<option value="Pacific/Apia">(GMT-11:00) Midway Island, Samoa</option>
<option value="Pacific/Honolulu">(GMT-10:00) Hawaii</option>
...
</select> <br />
<label for="delayTimeDate" class="lab">Time & Date: </label><input type="text" class="field" name="delayTimeDate" id="datepicker" />
<br /><br />
</div>
Поэтому я попытался добавить скрытое текстовое поле, которое работало в FF, но не в Opera.Opera забывает скрытые значения полей, но не значения текстового поля, поэтому я обернул текстовое поле в экран: нет div, который запоминает значение ok, но javascript срабатывает до того, как значение в поле формы обновляется браузером Opera.Вот код:
function sendSpec () {
$("#sendSpec").slideToggle("slow");
if($('#sendWhen').html() == 'IMMEDIATLY'){
$('#sendWhen').html('AS SPECIFIED');
$('#sendWhenState').val('1');
}else{
$('#sendWhen').html('IMMEDIATLY');
$('#sendWhenState').val('0');
}}
$("#sendChange").click(function () {
sendSpec();
return false;
});
if($('#sendWhenState').val() == 1){
sendSpec();
}
HTML такой же, но с добавленным полем формы
<div style="display:none"><input type="text" id="sendWhenState" value="0" /></div>
Мне это не нравится, но я не могу найти другой путь.вышеописанное тоже самое только что добавило тайм-аут в if sendWhenState == 1, чтобы Opera обновила поля, прежде чем я проверил их значение следующим образом:
setTimeout(function(){
if($('#sendWhenState').val() == 1){
sendSpec();
}
},1000);
Я новичок здесь, если мне нужноответил на мой собственный вопрос или я был прав, чтобы отредактировать вопрос с решением, которое я придумал?