Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CSS][HTML] nie klikalny przycisk
eminiasty
post 30.04.2017, 18:18:52
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

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


Ustawilem na przycisk disable ale i tak moge wejsc w zawartość #step-3. Jak można to inaczej zablokować, żeby nie dało się wejść do tej zawartości?
Jest to część formularza krokowego.

  1. <a href="#step-3" type="button" class="btn btn-default btn-circle btn-primary" disabled="disabled">3</a>
Go to the top of the page
+Quote Post
mortus
post 30.04.2017, 18:35:32
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Przecież to nie jest przycisk <button> tylko odnośnik/kotwica <a>. Może użyj bootstrap'owego stylu disabled, przy czym trzeba później obsługę w javascript zrobić.
Go to the top of the page
+Quote Post
eminiasty
post 30.04.2017, 19:04:00
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

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


Ostatnio słyszałem, że kotwicy/przekierowania nie można umieszczać w buttonach dlatego umieszczone zostało to w herf

Masz racje zastosowanie klasy bootstrapowej disabled pomaga,aczkolwiek tu jest przykład w którym nie stosują tej klasy i nie ma takiego problemu? Dlaczego?

http://bootsnipp.com/snippets/e3MBM
Go to the top of the page
+Quote Post
mortus
post 30.04.2017, 20:05:17
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Fakt, ta funkcjonalność wynika z zastosowania bootstrap'a, a dokładnie stylu dla elementu .btn[disabled]. Niestety nie da się stwierdzić w czym tkwi problem, patrząc tylko na tę linijkę kodu. Trzeba całość zobaczyć "w akcji". Być może istotne jest czym jest element nadrzędny, być może gdzieś nadpisujesz wspomniany wyżej styl, a być może wystarczy wyczyścić cache (Ctrl + F5 na tej konkretnej stronie). Przyczyn może być kilka.

PS. Nie zmienia to faktu, że kod będzie niezgodny ze standardem HTML, ponieważ <a> nie może posiadać atrybutu disabled. Natomiast bootstrap'owy .btn[disabled] odpowiada również bootstrap'owemu .btn.disabled.

Ten post edytował mortus 30.04.2017, 20:14:45
Go to the top of the page
+Quote Post
eminiasty
post 30.04.2017, 23:53:36
Post #5





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

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


Może troche odbiegne z tematu, ale to ten sam problem i to samo zagadnienie.

Mam taki js

  1. allNextBtn.click(function(){
  2. var curStep = $(this).closest(".setup-content"),
  3. curStepBtn = curStep.attr("id"),
  4. nextStepWizard = $('div.setup-panel div a[href="#' + curStepBtn + '"]').parent().next().children("a"),
  5. curInputs = curStep.find("input[type='text'],input[type='number'],select,textarea"),
  6. isValid = true;
  7. console.log('GO');
  8.  
  9.  
  10. $(".form-group").removeClass("has-error");
  11. for(var i=0; i<curInputs.length; i++){
  12. if (!curInputs[i].validity.valid || curInputs[i].selectedIndex == 0 || curInputs[i].length > 0){
  13. isValid = false;
  14. $(curInputs[i]).closest(".form-group").addClass("has-error");
  15. console.log('ERROR');
  16. }
  17. }
  18.  
  19. if (isValid){
  20. nextStepWizard.removeClass('disabled').trigger('click');
  21. nextStepWizard.removeAttr('disabled').trigger('click');
  22. }
  23. else{
  24. alert('Uzupełnij wszystkie pola.');
  25. }
  26. });



oraz zwykly kwalek html:

  1. <input class="form-control" name="cosik" type="number" value="1" min="1" step="0.1" novalidate />


Mógłby mi ktos wytlumaczyc dlaczego ten kod sprawdza tego inputa jesli ma on nadane novalidate, a ponadto w puli sprawdzania jest wartosc numeric.
  1. curInputs = curStep.find("input[type='text'],input[type='number'],select,textarea"),


numeric startuje od 1 wiec zawsze powinien byc poprawny, a nie jest.
Go to the top of the page
+Quote Post
mortus
post 1.05.2017, 14:51:27
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


novalidate to atrybut formularza <form>, który wyłącza walidację całego formularza po jego zatwierdzeniu przyciskiem typu submit. Atrybut ten nie ma zastosowania w przypadku pól formularza. Natomiast find() służy tylko i wyłącznie do "odnalezienia" określonych elementów w DOM i nie sprawdza po drodze niczego. Sprawdzenia dokonujesz później w pętli for().
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: 24.04.2024 - 23:55