jQuery 克隆() : Is this a bug with firefox or I am missing something

标签 jquery firefox

我对这个 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 除外)均按预期运行。我在 XP 上使用 FF 3.5。

最佳答案

我不得不绞尽脑汁思考这个问题,因为这种警觉让我感到厌烦。为您的输入字段分配一些名称,当您进行克隆时,给它一个不同的名称,即+

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

Firefox会记住输入,与JS无关。如果您进行完全刷新(+Shift),它也应该清除您发布的示例中的输入。

关于jQuery 克隆() : Is this a bug with firefox or I am missing something,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328282/

相关文章:

javascript - 如何使用Javascript进行变换?

jquery - 从 jQuery 安全地调用安全的 WebService

JavaScript 检测 iOS Firefox

css - :after pseudo not taking direction (rtl) in consideration?(火狐)

javascript - Web Speech API 在商业应用中的使用

javascript - jquery(或纯 js)将更改事件绑定(bind)到数组中对象的属性

javascript - 如何在标签关闭后插入\n?

javascript - 如何添加一些 jQuery 插件完成回调

css - Mozilla FireFox 页面控件根据身份验证类型进行更改

javascript - 如何在 Firefox 中获取带零的数字输入的完整值