2012-01-18 18 views
11

Próbuję użyć jQuery do wypełnienia formularza z pewnymi wartościami domyślnymi.Wypełnij formularz jQuery

Formularz znajduje się w div, który ma identyfikator. W rzeczywistości każdy element ma identyfikator, zrobiłem to tylko po to, aby móc szybko wybrać każdy fragment formularza, używając składni $("#id").
Oto forma:

<div id="panel" style="position: absolute; left: 190px; top: 300px; width: 400px; height: 300px; border: medium groove brown; background: none repeat scroll 0% 0% black; z-index: 100; color: white;"><form id="form_coord_0"> 
X <input type="text" style="height: 25px; font-size: 10px;" size="2" name="X" id="coordX_0"/> 
Y <input type="text" style="height: 25px; font-size: 10px;" size="2" name="Y" id="coordY_0"/> 
<input type="button" id="edit_0" value="M"/> 
<input type="button" id="remove_0" value="-"/> 
<input type="button" id="add_0" value="+"/> 
<input type="button" id="go_0" value="go!"/> 
<br/> 
</div> 

muszę ustawić pole coordX_0 tekstową z jakąś wartość, powiedzmy: 123.

Myślałem, że mogę zrobić

$("#coordX_0").text.value = 123; 

Ale to nie wydają się działać. Jakaś wskazówka?

+0

http://api.jquery.com/val, dokumentacja jest twoim przyjacielem. – Jasper

+0

Dziękuję Jasper, jestem całkiem nowicjuszem z jQuery (cóż, nawet z js: D) Nie wiedziałem nawet, że istnieje metoda val(). – nick2k3

+0

@ nick2k3 Pierwszą rzeczą, którą zrobiłem, gdy uczyłem się jQuery, było przejrzenie dokumentacji API i zobaczenie wszystkich dostępnych funkcji oraz pokazów jak z nich korzystać. Zrobiłem to, więc mogłem mieć przynajmniej podstawowe pojęcie o tym, co pozwoli mi framework. Na przykład funkcja '.val()' może przyjąć funkcję jako argument, jeśli chcesz obsługiwać wiele danych wejściowych na raz, poniżej możesz zobaczyć moją odpowiedź na przykład, jak to zrobić: http://stackoverflow.com/questions/8914161/fill-in-a-form-with-jquery/8914281 # 8914281 – Jasper

Odpowiedz

17

Można użyć funkcji val() ustawić wartości wejściowych

$("#coordX_0").val(123); 

Nawiasem mówiąc, oryginalny kod może być wykonane do pracy poprzez ustawienie wartości właściwość na faktycznym, bazowym elemencie dom. Aby uzyskać dostęp do elementu DOM przez indeksowanie wyników jQuery:

$("#coordX_0")[0].value = 123; 
+0

Dziękuję bardzo! To rozwiązało to. Czy ty lub ktoś inny zdaje sobie sprawę, gdzie mogę znaleźć obszerną dokumentację na temat metody, którą mogę wywołać na takich obiektach? (coś jak JavaDoc, ale dla javascript i DOM). – nick2k3

+0

Cóż, dokumenty jQuery są fantastyczne - ale natywna domowa dokumentacja? - nie z góry mojej głowy. –

+1

@ nick2k3 Wypróbuj dokumentację MDN: https://developer.mozilla.org/en/DOM/HTMLInputElement. Wystarczy przeszukać Google (lub cokolwiek innego) dla '[właściwość, o której chcę wiedzieć] MDN' gdzie' [właściwość, którą chcę wiedzieć] 'będzie coś w stylu' wartość elementu'. – Jasper

3

Aby ustawić wartość w polu wprowadzania jej

$("#coordX_0").val(123) 
3
$("#coordX_0").val("123"); 

Trzeba cytaty zbyt myślę. Chociaż może działać w obie strony.

2

Użyj metody val, aby ustawić tekst dowolnego pola input.

$("#coordX_0").val(123); 
3

Spróbuj zamiast metodą val:

$("#coordX_0").val('some string or number'); 
1

Używaj zamiast tego:

$("#coordX_0").val("123"); 
2

użyć funkcji val

$("#coordX_0").val("123"); 
2

Wystarczy napisać:

$("#coordX_0").val(123); 

W jQuery, text jest funkcją do wyodrębniania tekstu w dom.

14

wszystkie odpowiedzi są dokładnie takie same, więc pomyślałem, że po coś innego:

var inputs_to_values = { 
    'coordX_0' : 'some value', 
    'coordY_0' : 'some other value', 
    'edit_0' : 'N', 
    'remove_0' : '_', 
    'add_0' : '-', 
    'go_0'  : 'stop?' 
}; 
$('#form_coord_0').find('input').val(function (index, value) { 
    return inputs_to_values[this.id]; 
}); 

można przekazać .val() funkcję, co jest zwracane z funkcji dla każdego elementu będzie nowa wartość:

Funkcja zwracająca wartość do ustawienia.

ten jest bieżącym elementem.

Odbiera pozycję indeksu elementu w zestawie i starą wartość jako argumenty.

Źródło: http://api.jquery.com/val

Powyższy kod oczekuje, że każde wejście będzie mieć właściwość w obiekcie inputs_to_values więc można przekonwertować identyfikator wejścia do nowej wartości dla tego wejścia.

Oto demo: http://jsfiddle.net/zYfpE/

+0

Szukałem czegoś takiego, byłem pewien, że w jquery była natywna metoda, ale i tak jest wystarczająco kompaktowa. Naprawdę lubię to. – AndreaBogazzi

+0

Ta krótka i łatwa do rozszerzenia metoda jest właśnie tym, czego potrzebowałem i myślę, że idealnie odpowiada na to pytanie. Dzięki! – Yatko