Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Blokowanie przycisku submit, Jak zablokować przycisk submit, jeśli którekolwiek z pól formularza ni
romseb
post 20.03.2012, 17:25:05
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 19.09.2007

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


Witam,

Tak jak pisałem wcześniej, zrobiłem walidację formularza przez javascript. Ładnie zaznacza kolorkami gdzie jest błąd. Chciałem również, żeby w przypadku gdy któreś pole nie zaliczy walidacji następowała blokada przycisku submit. W funkcji która koloruje pole (wywoływana na onchange) dopisałem po prostu odwołanie do pola submit w postaci document.getElementById('wyslij').disabled = false;

Jednak status przycisku submit się nie zmienia.

Co robię nie tak? Czuję, że to kwestia drobiazgu

Pozdrawiam

romseb
Go to the top of the page
+Quote Post
Niktoś
post 20.03.2012, 17:27:59
Post #2





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


a może to ma być tak?
document.getElementById('wyslij').disabled = true;
Go to the top of the page
+Quote Post
romseb
post 20.03.2012, 21:05:14
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 19.09.2007

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


Witam.

Było i true. Nic się nie zmieniło, nie działa.

Czy w ogóle robił ktoś tak, że blokuje się submit w momencie któreś z pól jest niepoprawne?

Przypomniam że zmianę wartości pola disabled dopisałem do kolorowania pól w przypadku wystąpienia błędu..

Będę wdzięczny za dalszą pomoc

romseb
Go to the top of the page
+Quote Post
kamil4u
post 20.03.2012, 21:43:28
Post #4





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

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


Przygotuj demo. Wszystko powinno działać, więc błąd pewnie jest gdzieś indziej: https://developer.mozilla.org/en/XUL/Attribute/disabled


--------------------
Go to the top of the page
+Quote Post
celbarowicz
post 20.03.2012, 22:27:39
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


  1. <script type="text/javascript" >
  2. var stan;
  3.  
  4. function w(){ stan=0;
  5. //ustawiłem stan=1 czyli błąd w walidacji, walidację dopracuj samodzielnie.//zmieniaj stan.
  6. stan=1 ;
  7. if(stan===0){ document.getElementById('su1').disabled = false; }
  8. else { document.getElementById("su1").disabled = true; }
  9. }
  10.  
  11. function pisz(){
  12. alert("edek");
  13. }
  14.  
  15.  
  16. <input type="text" name="nap1" id="nap1" onClick="w();">
  17. <input type="text" name="nap2" id="nap2" onClick="w();">
  18. <input type="submit" name="su1" id="su1" onClick="pisz()">
  19.  
  20. </form>
  21. </body>
  22. </html>
  23.  
  24.  
  25.  


Ten post edytował celbarowicz 21.03.2012, 07:31:41
Go to the top of the page
+Quote Post
romseb
post 20.03.2012, 23:04:00
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 19.09.2007

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


[JAVASCRIPT] pobierz, plaintext
  1. function isValidMacAddress(macAdd)
  2. {
  3. var RegExPattern = /^[0-9A-F-]+$/;
  4.  
  5. if (!(macAdd.match(RegExPattern)) || macAdd.length != 17)
  6. {
  7. document.getElementById("mac").style.background="#FF0000";
  8. document.getElementById('wyslij').disabled = true;
  9. }
  10. else
  11. {
  12. document.getElementById("mac").style.color="#009900";
  13. document.getElementById("mac").style.background="#E0E0E0";
  14. document.getElementById('wyslij').disabled = false;
  15. }
  16. }
  17. function isValidSocket(SckNum)
  18. {
  19. var RegExPattern = /^[0-9]{1,1}-[0-9]{3,3}$/;
  20.  
  21. if (!(SckNum.match(RegExPattern)) || SckNum.length != 5)
  22. {
  23. document.getElementById("gniazdko").style.background="#FF0000";
  24. document.getElementById('wyslij').disabled = true;
  25. }
  26. else
  27. {
  28. document.getElementById("gniazdko").style.color="#009900";
  29. document.getElementById("gniazdko").style.background="#E0E0E0";
  30. document.getElementById('wyslij').disabled = false;
  31. }
  32. }
  33.  
  34. [/codebox]
  35.  
[JAVASCRIPT] pobierz, plaintext


Rzućcie proszę okiem na ten kod.

Dzięki
romseb
Go to the top of the page
+Quote Post
celbarowicz
post 21.03.2012, 07:41:45
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Rezygnujesz ze swoich funkcji , następnie przez document.getElementById pobierasz: macAdd oraz...
To co było ciałem Twoich funkcji umieszczasz w ciele funkcji w(){ ....} W każdym Twoim starym fragmencie umieszczasz w odpowiednich miejscach stan=1.
To by było na tyle jak mawiał Profesor Stanisławski.

Ten post edytował celbarowicz 21.03.2012, 08:48:53
Go to the top of the page
+Quote Post
romseb
post 21.03.2012, 13:19:41
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 19.09.2007

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


Witam

Słuchajcie Państwo, ja już się troszkę zgubiłem. Przerobiłem swój skrypt, tak, że jedna funkcja sprawdza wyrażenie i zwraca true albo false, a druga funkcja przeprowadza odpowiedne operacje na wyglądzie zależnie od wyniku. Zmiany są zgodne z sugestią powyżej. W kodzie html wywołanie javascript odbywa sie na onchange. Wywołana jest funkcja validate. Zresztą rzućcie proszę okiem, czy to co poniżej ma prawo działać. Na codzień zajmuje się php, js zajmuję się tylko wtedy, gdy wiem, że dobrze nadaje się do moch celów. Tak czy inaczej, teraz nie działa nic

Będę wdzięczny za pomoc

romseb

CODE

[JAVASCRIPT] pobierz, plaintext
  1. function isValidMacAddress(macAdd)
  2. {
  3. var RegExPattern = /^[0-9A-F-]+$/;
  4.  
  5. if (!(macAdd.match(RegExPattern)) || macAdd.length != 17)
  6. {
  7. //document.getElementById("mac").style.background="#FF0000";
  8. //document.getElementById('wyslij').disabled = true;
  9. return false;
  10. }
  11. else
  12. {
  13. //document.getElementById("mac").style.color="#009900";
  14. //document.getElementById("mac").style.background="#E0E0E0";
  15. //document.getElementById('wyslij').disabled = false;
  16. return true;
  17. }
  18. }
  19. function isValidSocket(SckNum)
  20. {
  21. var RegExPattern = /^[0-9]{1,1}-[0-9]{3,3}$/;
  22.  
  23. if (!(SckNum.match(RegExPattern)) || SckNum.length != 5)
  24. {
  25. //document.getElementById("gniazdko").style.background="#FF0000";
  26. //document.getElementById('wyslij').disabled = true;
  27. return false;
  28. }
  29. else
  30. {
  31. //document.getElementById("gniazdko").style.color="#009900";
  32. //document.getElementById("gniazdko").style.background="#E0E0E0";
  33. //document.getElementById('wyslij').disabled = false;
  34. return true;
  35. }
  36. }
  37. function Validate()
  38. {
  39. var AcquiredMac = getElementById("mac").value;
  40. var AcquiredSck = getElementById("gniazdko").value;
  41.  
  42. if (isValidSocket(AcquiredSck)) && ((isValidMacAddress(AcquiredMac))
  43. {
  44. document.getElementById("gniazdko").style.color="#009900";
  45. document.getElementById("gniazdko").style.background="#E0E0E0";
  46. document.getElementById('wyslij').disabled = false;
  47. document.getElementById("mac").style.color="#009900";
  48. document.getElementById("mac").style.background="#E0E0E0";
  49.  
  50.  
  51. }
  52. else
  53. {
  54. document.getElementById("gniazdko").style.background="#FF0000";
  55. document.getElementById("mac").style.background="#FF0000";
  56. document.getElementById('wyslij').disabled = true;
  57. }
  58.  
  59. }
  60.  
[JAVASCRIPT] pobierz, plaintext






Go to the top of the page
+Quote Post
kamil4u
post 21.03.2012, 14:28:31
Post #9





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

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


http://jsfiddle.net/CcNXG/ - zrób na tej podstawie. Jak Ci się nie uda to swój kod( z HTML ) też umieść na tej stronie to łatwiej będzie mi się edytować


--------------------
Go to the top of the page
+Quote Post
celbarowicz
post 21.03.2012, 18:12:48
Post #10





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


  1. <script type="text/javascript" >
  2. var stan; var RegExPattern = /^[0-9A-F-]+$/; var macAdd;
  3.  
  4. function w(){stan=0;
  5. // część 1
  6. macAdd=document.getElementById("mac").value;
  7.  
  8. if (!(macAdd.match(RegExPattern)) || macAdd.length != 17)
  9. {
  10. document.getElementById("mac").style.background="#FF0000";
  11.  
  12. stan=1;
  13. }
  14. else
  15. {
  16. document.getElementById("mac").style.color="#009900";
  17. document.getElementById("mac").style.background="#E0E0E0";
  18.  
  19. }
  20. // część 2
  21. //do samodzielnego wykonania
  22.  
  23. if(stan===0){ document.getElementById('su1').disabled = false; }
  24. else { document.getElementById("su1").disabled = true; }
  25. }
  26.  
  27. function pisz(){
  28. alert("edek");
  29. }
  30. <form>
  31. <input type="text" name="mac" id="mac" onkeyup="w();">
  32.  
  33. <input type="submit" name="su1" id="su1" onClick="pisz()">
  34.  
  35. </form>
  36. </body>
  37. </html>
  38.  
  39.  
  40.  

Zamień onclick na onkeyup

Ten post edytował celbarowicz 21.03.2012, 20:38:28
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 13:10