2008-11-17 88 views
25

我有一個文本框的值,我想根據錨標記的內部文本設置。換句話說,當有人點擊這個錨:如何使用jQuery使用錨來設置文本框的值?

<a href="javascript:void();" class="clickable">Blah</a> 

我想我的文本框填充文本「Blah」。這是我目前使用的代碼:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a.clickable").click(function(event){ 
      $("input#textbox").val($(this).html()); 
     }); 
    }); 
</script> 

而且在我的HTML有與類「點擊」和一個文本框id爲「文本框」錨標籤的列表。

我用代碼代替上面的代碼,只顯示$(this).html()的JavaScript警報,它似乎顯示正確的值。我還將$(this).html()更改爲硬編碼字符串,並正確地對文本框值進行了排序。但是當我結合他們的文本框只是清除。我究竟做錯了什麼?

回答

52

我寫了這個代碼段和正常工作:

<a href="#" class="clickable">Blah</a> 
<input id="textbox"> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a.clickable").click(function(event){ 
      event.preventDefault(); 
      $("input#textbox").val($(this).html()); 
     }); 
    }); 
</script> 

也許你忘了給一個類別名稱「點擊」你的鏈接呢?

+0

謝謝。從你的代碼中,我可以知道出了什麼問題。這是一個空白問題(我在一個單獨的行中有錨標記內的實際文本)。 – 2008-11-17 19:08:29

6

只需要注意,在選擇器中爲tagName加前綴比使用id更慢。 在你的情況下,jQuery將得到所有的輸入,而不僅僅是使用getElementById。 只需使用$('#textbox')

+1

這個答案對問題的評論可能會更好。 – icktoofay 2010-04-22 20:58:49

1

以下紅色方塊:您不應該在像href屬性的javascript代碼中使用「javascript:void();」 - 這是錯誤的。更好地使用例如href =「#」,然後在你的事件處理程序中作爲最後的命令:「return false;」。甚至更好 - 在href正確的鏈接中使用 - 如果用戶禁用了JavaScript,則Web瀏覽器會遵循鏈接 - 在這種情況下,您的網頁應該用填充了該鏈接值的輸入重新加載。

4

要指定一個文本框ID爲 「文本框」,在jQuery,請執行下列操作

$( 「#文本框」)的值。得到(0).value的= 「嗒嗒」

+1

我剛纔在同樣的問題上使用了這個語法,並且令人難以置信地發揮了作用!謝謝! – rixter 2012-03-08 22:01:12

14

要在jQuery中爲id爲ёtextboxё的文本框賦值,請執行以下操作:

$("#textbox").val('Blah'); 
+1

我相信提問的人已經知道了,就像你在代碼中看到的一樣。 – icktoofay 2010-04-22 20:59:39