我正在使用我在教程中找到的腳本。腳本的目的是爲了在facebook和twitter上有類似的內容,您可以在輸入@符號後輸入名稱。然後彈出一個下拉菜單並列出名稱。空格鍵在運行javascript函數時導致不需要的文本
該腳本運行良好。問題在於,如果用戶需要開始輸入不僅僅是名字(爲了進一步縮小結果),他們在輸入姓氏之前自然地輸入姓氏。您目前還不能看到問題,並且名稱不斷縮小,下拉/彈出窗口仍然正確。一旦你點擊你正在尋找的人的鏈接,它會將該玩家作爲鏈接正確插入到我的textarea中,但它也包括鏈接外部的姓氏的前幾個字母。
如果鍵入像這樣,然後單擊彈出的名字正常工作:@fname
當輸入這樣不工作:@fname LNA
結果將顯示「FNAME LNAME」,在彈出像它應該是什麼,但點擊時插入我的textarea的是,像這樣..
lna<ahref>afname lname</a>
(該AHREF實際上並沒有顯示只是把那裏的例子。
這裏是我正在使用的腳本的工作演示的鏈接。
http://demos.9lessons.info/tagfriends.html
如果你去那裏和類型在搜索框中@sri,然後繼續在彈出的第一個名字打字,按空格鍵,然後開始鍵入的是姓氏的前幾個字母。然後點擊名稱。你會明白我的意思。
這裏是我相信錯誤可以修復或編輯的代碼。我已經搜索並尋找解決方案,但找不到任何東西。我想過禁用空格鍵,但我需要繼續工作。
<script type="text/javascript">
$(document).ready(function()
{
var start=/@/ig;
var word=/@(\w+)/ig;
$("#contentbox").live("keyup",function()
{
var content=$(this).text();
var go= content.match(start);
var name= content.match(word);
var dataString = 'searchword='+ name;
if(go.length>0)
{
$("#msgbox").slideDown('show');
$("#display").slideUp('show');
$("#msgbox").html("Type the name of someone or something...");
if(name.length>0)
{
$.ajax({
type: "POST",
url: "boxsearch.php",
data: dataString,
cache: false,
success: function(html)
{
$("#msgbox").hide();
$("#display").html(html).show();
}
});
}
}
return false();
});
$(".addname").live("click",function()
{
var username=$(this).attr('title');
var old=$("#contentbox").html();
var content=old.replace(word,"");
$("#contentbox").html(content);
var E="<a href=''>"+username+"</a>";
$("#contentbox").append(E);
$("#display").hide();
$("#msgbox").hide();
$("#contentbox").focus();
});
});
</script>
這完美的作品謝謝!!!!在調用ajax時,我不必用「%20」替換空格。 – user3765759