Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jednorazowe wywołanie funkcji onClick
ZenekN
post
Post #1





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Witam, potrzebuję wykonać funkcję onClick w całym wierszu w polach input, z tym że jeśli klikniemy na dowolne pole z danego wiersza aby funkcja dodała tylko jeden wiersz pod spodem.
U mnie wygląda to w ten sposób że gdy klikam w pole kod towaru prawidłowo pojawia się kolejny wiersz tabeli, natomiast gdy przechodzę w tym samym wierszu do pola ilość lub cena nie chcę aby funkcja dodawajka generowała kolejne wiersze z polami.

Proszę o wykasowanie tego tematu:
  1. http://forum.php.pl/Jednorazowe_wywolanie_funkcji_z_zdarzenia_onClick_t230734.html




(IMG:http://i.imgur.com/afievuG.png)


  1. <tr>
  2. <td>
  3. <code>1</code>
  4. </td>
  5. <td><input id="form-custom" onClick="dodawajka()" type="text" class="input-sm form-control"></td>
  6. <td><input id="form-custom" type="text" class="input-sm form-control"></td>
  7. <td><input id="form-custom" type="text" class="input-sm form-control"></td>
  8. <td><input id="form-custom" type="text" class="input-sm form-control"></td>
  9. </tr>


  1.  
  2.  
  3.  
  4. function dodawajka(){
  5.  
  6. var content = $("#faktura-body");
  7. var i = $("#faktura-body tr").size() +1;
  8.  
  9. $("<tr onClick=\"dodawajka()\"><td><code>1</code></td><td ><input id=\"form-custom\" type=\"text\" class=\"input-sm form-control\"></td><td><input id=\"form-custom\" type=\"text\" class=\"input-sm form-control\"></td><td><input id=\"form-custom\" type=\"text\" class=\"input-sm form-control\"></td><td><input id=\"form-custom\" type=\"text\" class=\"input-sm form-control\"></td></tr>").appendTo(content);
  10.  
  11. i++;
  12. return false;







}

Ten post edytował ZenekN 5.05.2014, 17:13:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Mogę. Generalnie całość masz źle. Nie miesza się HTML z JS. W JS zdarzenia( np. kliknięcie ) możesz dodawać na kilka sposobów. Najlepiej poczytaj na ten temat np. : http://webhelp.pl/artykuly/obsluga-zdarzen-w-przegladarkach/ - tu opisany poprawny sposób dodawania zdarzeń.

Ale wróćmy do Twojego kodu albo lepiej do mojego.

Wraz z kliknięciem przekazujemy parametr this. this oznacza konkretny element. Czyli klikając na "test1" this wskazuje na <input type="button" value="test1" onclick="funkcja(this);">, a klikając na test3 w this dostajemy <input type="button" value="test3" onclick="funkcja(this);">

Teraz w naszej funkcji konkretny element mamy pod zmienną el. Teraz warto, żebyś poczytał o DOM. W skrócie chodzi o to, że za pomocą DOM możemy odczytywać, zmieniać wszystkie parametry elementu np. jak wewnątrz funkcji dasz:
alert( el.value ); to zostanie wyświetlona wartość HTML-owego pola value. Gdy dasz el.value = "nowa wartość"; to np. z test1 zmieni się wartość pola value na nowa wartość.

To samo można robić z onclick. Napisaliśmy w kodzie el.onclick = null; oznacz to tyle, że zmieniamy parametr klikniętego elementu na onclick="", bo null to nic. Czyli usuwamy pierwotne zdarzenie kliknięcia.

W razie czego pytaj to może napiszę coś więcej.

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 19:32