通过单击链接填充输入字段 - 不起作用

时间:2013-04-20 15:38:31

标签: jquery input field

我正在尝试通过单击链接来填充输入字段。此链接的href应确定将在此输入字段中填写的内容。

$(".search_item").click(function(){
    var selectedChamp=$(this).attr('href').split('=')[1];
    $('.textfield').val( selectedChamp );
       return false;
});

我使用了以下JSfiddle:http://jsfiddle.net/charlietfl/5u3BZ/ 但我无法让它为自己工作。

使用JSRender生成链接。

在此页面上:http://lorebook.net/lore/您可以看到我想要实现的目标。 在顶部的栏中填写一些内容(只需输入字母“A”,它将显示一些结果),那里的链接应该在输入字段中输入内容。

奇怪的是,在这个页面的底部有一些确实有用的链接。他们使用完全相同的代码,但由于某种原因他们工作,而其他链接则没有。

非常感谢帮助。

2 个答案:

答案 0 :(得分:1)

你应该使用.preventDefault(); 这样,点击即可触发替代事件。

$(".search_item").click(function(e){
    e.preventDefault();
    var selectedChamp=$(this).attr('href').split('=')[1];
    $('.textfield').val( selectedChamp );
});

我在你的页面上对它进行了测试,并且适用于这个小改动,它适用于我。

编辑:我把它拿回来......因为问题不在于脚本本身......如果我将它放入控制台,它就会做正确的事情......这意味着在脚本启动时,它找不到它需要的DOM元素。

  • 如果我在搜索之前启动脚本......它不起作用......
  • 如果我搜索然后将脚本粘贴到控制台中......它会找到.search_item元素并按预期工作。

所以我不确定您的上述文本字段脚本当前位于何处...但您应该只在已经加载搜索结果元素并且可以在DOM中找到它时调用它。 < / p>

答案 1 :(得分:1)

我认为这应该有效:

pr = "";
setInterval(function(){
  if(document.location.hash != pr){

    $('.textfield').val( document.location.hash.split('=')[1] );

    // Do what you want

    pr = document.location.hash;
  }
}, 50);