Próbuję zaimplementować sprawdzanie poprawności jQuery z http://docs.jquery.com/Plugins/Validation:Sprawdzanie poprawności jquery - Błąd podczas dodawania reguł do elementu wejściowego?
Mój plan design:
Moja wejście elementem:
<form action="submit.php" id="form_id"> <input type="text" class="val-req" id="my_input" name="myval" /> <input type="button" onclick="validate_form('form_id', function() { $('#form_id').submit(); })" /> <span id="val-msg" class="my_input"></span> </form>
Następnie na dom gotowy:
$(document).ready(function() { $('.val-req').rules('add', {required:true}); });
Walidacja metody:
function validate_form(form_id, callback) { var form = $('#'+form_id); $('.val-req').each(function() {$(this).rules('add', {required:true});}); $(form).validate({ errorElement: "span", errorClass: "val-error", validClass: "val-valid", errorPlacement: function(error, element) { $('#val-msg.'+$(element).attr('id')).innerHTML(error.html()); }, submitHandler: callback }); }
Zgodnie z moimi oczekiwaniami, powinien wyświetlić komunikat o błędzie w rozpiętości uchwytem miejsce w formularzu.
Ale Problem
Error on Chrome-Console: Uncaught TypeError: Cannot read property 'settings' of undefined
Jest również daje błąd na innych przeglądarkach. Następnie próbowałem dowiedzieć out problem Znalezione
$('.val-req').rules('add', {required:true}); # This is causing the error
Jako, za mojego zrozumienia i dokumentacji -> To powinno być prawidłowe.
Dlaczego spowodowałoby to TypeError i co mogę zrobić, aby go rozwiązać?
FYI, rozpocząłem dyskusję na temat tego pytania [tutaj] (http://meta.stackexchange.com/q/133057/153691). –
Nastąpiło zamieszanie - że literówka rozwiązała problem. Zaprzeczam temu. Popełniłem literówkę podczas pisania pytania, które zostało później poprawione - ale to nie było w ogóle. –
Problem nadal się utrzymuje i nie mam absolutnie pojęcia, co jest złego w mojej implementacji. –