2013-02-15 7 views
6

Mam formularz, który może być wyświetlany na różnych stronach, a w zależności od okoliczności pola nie zawsze są wymagane.Po kliknięciu ukryj element div i usuń wymagany atrybut.

Mam kod, aby ukryć div, ale trzeba pola wejściowe nie są już wymagane. Korzystanie z wymaganego atrybutu HTML5. Problem z uruchomieniem kodu. Kod jest poniżej:

$('#detailssame').click(function() { 
    if($(this).is(':checked')) { 
     $(\"#detailssamehide\").hide(); 
    } else { 
     $(\"#detailssamehide\").show(); 
    }    
}); 
$('.fullboxform input[type=text], .fullboxform select').each(function() { 
      $(this).removeAttr('required'); 
}); 

Cała pomoc jest bardzo doceniana.

Okazuje się, że powyższy kod działa poprawnie, ale alternatywą odpowiedź dostępny za pomocą prop

Odpowiedz

6

spróbować użyć funkcji prop() do ustawiania właściwości HTML5.

$(function() { 
    $('#detailssame').click(function() { 
     var checked = $(this).is(':checked'); 
     if(checked) { 
      $("#detailssamehide").hide(); 
     } else { 
      $("#detailssamehide").show(); 
     }  
     $('.fullboxform input[type=text], .fullboxform select').each(function() { 
      $(this).prop('required', !checked); 
     }); 
    }); 
}); 

http://jsfiddle.net/ThsXU/

+0

Zgodnie z moimi wskazaniami, ustawienie '' prop ('required', false) '' NIE powoduje niezawodnie usunięcia wymaganego statusu we wszystkich przeglądarkach. MUSISZ użyć '' removeAttr ('required') '', aby uzyskać stabilne wyniki we wszystkich przeglądarkach. – Jpsy

1

Usuwanie backslashy było dla mnie za mało, aby uruchomić kod z pożądanego efektu.

+0

Ukośniki były tam, ponieważ są wyprowadzane przez PHP. Masz rację, to się udało. Sprawdziłem dalej za pomocą konsoli i nie zdawałem sobie sprawy, że mam kilka wymaganych danych wejściowych, które nie były tekstem. –

+0

Staraj się nie wyświetlać js w PHP, ponieważ zapobiega buforowaniu i jest łatwiejsze do zminimalizowania i trudniejsze w utrzymaniu. Co najważniejsze, unikaj umieszczania kodu z jednego języka na łańcuchu innego języka. –