2011-05-02 60 views
0

我正在學習作業,其中包括創建社交網絡(基本上是:Facebook:P)。這是在團體,和我們中的一個寫了一個自動完成搜索引擎,它的工作原理是這樣的:Javascript:將數據加載到隱藏的表單元素中

http://img585.imageshack.us/img585/333/194d61cbc3fe4cc98005ea1.png

你輸入一個名稱,它使用了一些JS和PHP來查詢數據庫找到輪廓匹配您輸入的字符串部分。現在,我想使用此功能來實現照片的標記。現在的問題是這樣的:這.js文件腳本返回元素的無序列表,包含鏈接(的HREF),如果一個選擇:

select: function(event, ui) { 
    if (ui.item) { 
     window.location.href = ui.item.href;  
    } 
} 

被稱爲導航到相應的配置文件。現在我想要做的是:輸入一個字符串,得到查詢結果列表,當我點擊一個,我想要加載它在框中。現在,我幾乎0與PHP和JavaScript的經驗(我不得不從頭學習它基本上,我可以處理大多數的現在,但仍...:P),我不能讓它的工作

<div class="widget" id="search"> 
    <form id="search" method="POST" enctype="multipart/form-data"> 
     <input type="hidden" name="search" value="3559d7accf00360971961ca18989adc0614089c0" /> 
     <div class="field text term "><label for="term">Zoeken</label> 
      <input type="text" name="term" id="term" class="text" value="" /> 
     </div> 
    </form> 
</div> 

如何訪問實際的文本框,並把數據在它:基本上該文本框在HTML這樣的「定義」?任何接受者? :)儘管嘗試幾乎所有我在那裏看到的名字,身份證或課程,但似乎無法使其發揮作用。我只需要獲得點擊的名字入禁區,這樣我就可以提交&將其輸入數據庫,無需手動輸入完整的確切名稱是不是真的...花式足夠

+0

ID應該是唯一的。而且,在一些舊的瀏覽器中,使用已經存在的'name'作爲'id'可能會導致問題。 – 2011-05-02 10:56:12

+0

如果網站的客戶端的大小會增加(如預期的那樣),那麼最好使用像[MooTools](http://mootools.net/)或[jQuery]這樣的JavaScript庫(http:// jquery .com /)爲跨瀏覽器一致性,只是我們的輕鬆。但保持香草js簡單的DOM操作和類似的東西。 – Zirak 2011-05-02 11:03:15

+0

馬塞爾:是的,但我沒有寫代碼自己的這一部分,我只是試圖去適應它:) Zirak:我們確實使用jQuery和這個代碼是它的一部分(或至少基於它),但幾乎所有的JavaScript都基於jQuery庫和插件。 – Licargon 2011-05-02 11:15:18

回答

1
document.getElementById('term').value = newValue; 

或者,使用jQuery(如您在標籤中指定的那樣):

$('#term').val(newValue); 
+0

我已經嘗試過兩種方法,沒有任何結果。我點擊列表中的名稱,下拉框消失,字段保持空白。 奇怪的是,這基本上是普通的jQuery自動完成代碼,並且在jQ演示中,當其中一個結果被點擊時,它會在框中加載。有沒有讓我感到煩惱的那個團隊成員呢,除非有人有不同的想法? :) – Licargon 2011-05-02 11:17:22

+0

@Licargon:你在你的代碼中試過的是哪裏?你確定有**只有**元素ID?term?如果jQuery自動完成應該自己提供,那麼你不應該試圖用這種方法來解決這個問題,但是確保插件能夠正常工作(並且這可能仍然是因爲有另一個ID爲term的元素)。 – 2011-05-02 11:20:03

+0

ID「term」在該頁面上是唯一的,所以這應該不重要。 (因爲它也用於PHP數據源,所以這個人確保它是唯一的)。我已經在自動完成代碼的「選擇」功能中嘗試過它(當我點擊與該名稱關聯的鏈接時,它將重定向我的瀏覽器)。當我只是把警報(「測試」);在那裏,當我點擊它時,它會提醒我這個消息,所以我有正確的位置來放置代碼,但它似乎不起作用。 – Licargon 2011-05-02 11:23:22