jQuery clone (): это ошибка в Firefox или я что-то упустил - PullRequest
4 голосов
/ 25 августа 2009

У меня проблема с этим кодом jQuery:

$(document).ready( 
  function(){  
    alert($('#search').val());  

    var dummyInput = $('#search').clone()
    .attr('id', 'search_watermark')
    .val('Search query')

    $('#search').before(dummyInput);
  }
);

$(window).unload(function(){
  $('#search_watermark').remove();
});

и HTML:

<form id='test_form' action='/test.php' method='post'>
  <label>Create New Team</label><br/>
  <input type='text' id='search' />
</form>

Проблема:

Мы присваиваем значение только клону поля ввода, а не фактическому полю ввода. Но вы обнаружите, что в Firefox, когда вы обновляете страницу, значение фактического поля ввода изменилось. Такое поведение неожиданно.

Все остальные браузеры (кроме FF) ведут себя как положено. Я использую FF 3.5 на XP.

Ответы [ 2 ]

3 голосов
/ 25 августа 2009

Мне пришлось обернуть мозг вокруг вопроса, потому что тревога отчасти оттолкнула меня. Присвойте некоторые имена вашим полям ввода и, когда вы делаете клон, присвойте ему другое имя, т.е. +

var dummyInput = $('#search').clone()
.attr('id', 'search_watermark')
.val('Search query').attr( 'name', 'foo' );

Firefox запомнит ввод, он не имеет ничего общего с JS. Если вы выполните полное обновление (+ Shift), это также должно очистить ввод от примера, который вы опубликовали.

0 голосов
/ 25 августа 2009

Обновление страницы означает, что страница перезагружается, поэтому все сценарии Java будут работать снова, а все переменные и т. Д. Будут потеряны, поскольку страница снова загружается с сервера. Поэтому, возможно, Firefox запоминает некоторые значения или что-то в этом роде ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...