2008-11-17 23 views
25

Mam pole tekstowe, którego wartość chcę ustawić na podstawie wewnętrznego tekstu znacznika zakotwiczenia. Innymi słowy, gdy ktoś kliknie na tę kotwicę:Jak ustawić wartość pola tekstowego za pomocą kotwicy z jQuery?

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

Chcę, aby mój tekst wypełnił się tekstem "Bla". Oto kod Obecnie używam:

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

I w moim html znajduje się lista tagów kotwicznych z klasą „klikalny” i jeden tekstowego z identyfikatorem „tekstowe”.

Zastąpiłem powyższy kod kodem, aby wyświetlić alert javascript z $ (this) .html() i wydaje się, że pokazuje poprawną wartość. Zmieniłem także $ (this) .html(), aby był ciągiem stałym i ustawi poprawnie wartość pola tekstowego. Ale kiedy je łączę, pole tekstowe po prostu znika. Co ja robię źle?

Odpowiedz

52

pisałem ten fragment kodu i działa prawidłowo:

<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> 

Może zapomniał podać nazwę klasy „klikalny” do linków?

+0

Dzięki za to. Z twojego kodu mogłem powiedzieć, co poszło nie tak. To był problem biały (miałem tekst wewnątrz znacznika kotwicy w osobnej linii). –

6

Zauważ, że prefiks tagName w selektorze jest wolniejszy niż użycie samego identyfikatora. W twoim przypadku jQuery otrzyma wszystkie dane wejściowe, zamiast tylko używać getElementById. Po prostu użyj $ ('# textbox')

+1

Ta odpowiedź będzie prawdopodobnie lepsza jako komentarz do pytania. – icktoofay

1

Następujące redsquare: Nie powinieneś używać w href atrybut javascript kod jak "javascript: void();" - to jest złe. Lepiej użyj na przykład href = "#", a następnie w treserze zdarzeń jako ostatnie polecenie: "return false;". I jeszcze lepiej - użyj w poprawnym odnośniku href - jeśli użytkownik ma wyłączony javascript, przeglądarka internetowa podąża za linkiem - w tym przypadku Twoja strona powinna zostać wczytana z danymi wejściowymi wypełnionymi wartością tego linku.

4

Aby przypisać wartość pola tekstowego, którego id to "pole tekstowe" w JQuery wykonaj następujące czynności

$ ("# tekstowe"). Get (0) .Value = "bla"

+1

Po prostu użyłem tej składni na ten sam problem i, niestety, zadziałało! dzięki! – rixter

14

Do przypisać wartość pola tekstowego, którego identyfikator jest ёtextboxё w jQuery wykonaj następujące

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

Wierzę, że osoba, która zadała pytanie, już to wiedziała, co widać w jego kodzie. – icktoofay

Powiązane problemy