http://docs.jquery.com/Plugins/Validationで Jquery 検証を実装しようとしています:
私の設計計画:
私の入力要素:
<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>
次に、dom の準備ができたら:
$(document).ready(function() { $('.val-req').rules('add', {required:true}); });
検証方法:
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 }); }
私の期待どおり、フォームのプレースホルダー スパンにエラー メッセージが表示されるはずです。
しかし、問題
Chrome コンソールのエラー: Uncaught TypeError: 未定義のプロパティ 'settings' を読み取れません
また、他のブラウザでもエラーが発生しています。次に、問題を理解しようとしたところ、次のことがわかりました。
$('.val-req').rules('add', {required:true}); # This is causing the error
私の理解とドキュメントによると、->これは正しいはずです。
これにより TypeError が発生するのはなぜですか?それを解決するにはどうすればよいですか?