Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]Zmiana wartośći input
Forum PHP.pl > Forum > Przedszkole
Mgorka
Siema pisze program w js który będzie dodawać wartości po wybraniu ich.
Może teraz jaśniej mam kilka inputów typu checkbox (są one wczytywane z bazy danych ale teraz to ominąłem dla ułatwienia):
  1. <tr><td style="width: 400px;">Zanacz kolorem 5zł</td><td>TAK <input type="checkbox" class="price" name="prce[]" value="5" onchange="price(this);"/></td></tr>
  2. <tr><td style="width: 400px;">Zawsze na początku strony 10zł</td><td>TAK <input type="checkbox" class="price" name="prce[]" value="10" onchange="price(this);"/></td></tr>
  3. <input type="hidden" id="price" name="price" value="0">

Po zaznaczeniu opcji w formularzu uruchamaiany jest skrypt js:
  1. function price(){
  2. var pri = document.getElementById('price').value;
  3. if(document.getElementByClassName('price').checked){
  4. var ad = document.getElementByClassName('price').value;
  5. var suma = pri + ad;
  6. document.getElementById('price').value = suma;
  7. }
  8. }
  9.  

ale funkcja nie chce zmienić wartości co robię nie tak. Użyłem this aby odwołąć się konkretnie do tego input
wewior
Masz dwa elementy o klasie price wiec to:
  1. document.getElementByClassName('price')

pewnie będzie tablicą.
Poza tym powinieneś wg mnie przekazywać obiekt this jako parametr funkcji np:
  1. function price( oElement ){

Wtedy oElement będzie konkretnym przekazanym checkboxem.
mortus
Dla Twojego HTML-a funkcja price() powinna wyglądać tak:
[JAVASCRIPT] pobierz, plaintext
  1. function price(element) {
  2. if(element.checked) {
  3. document.getElementById("price").value = document.getElementById("price") + element.value;
  4. } else {
  5. document.getElementById("price").value = document.getElementById("price") - element.value;
  6. }
  7. }
[JAVASCRIPT] pobierz, plaintext
Mgorka
nadal niedział tak jak by nie była wywoływana ;/
mortus
Nie działa, bo zgubiłem value po drodze. Poza tym trzeba rzutować łańcuch znaków na liczbę, bo + działa jak konkatenacja.
[JAVASCRIPT] pobierz, plaintext
  1. function price(element) {
  2. if(element.checked) {
  3. document.getElementById("price").value = Number(document.getElementById("price").value) + Number(element.value);
  4. } else {
  5. document.getElementById("price").value = Number(document.getElementById("price").value) - Number(element.value);
  6. }
  7. }
[JAVASCRIPT] pobierz, plaintext
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.