jqueryの検証プラグインを使用してフォームを検証しています。私は検証したくない1つのフィールドを持っていますが、何らかの形でそれが検証され、 "5文字以内で入力してください"というエラーメッセージが表示されます。ブラウザがフォーカスを取得するたびにJQueryの検証がトリガーされます
検証されるフィールドはtype = fileフィールドで、私はFynework jQuery MultiFormプラグインと一緒に使用します。 5文字以上の名前のファイルを選択したときにのみ、フォームを送信しようとすると検証されません(短い名前は長く働いていないと思います)。
バリデーションされたフィールドに.ignoreクラスを追加しようとしましたが、validat()では動作の違いではなく無視ルールが追加されました。
何が問題なのですか?
function addNewTicketValidation(){
$("#newticketform").validate({
ignore: ".ignore",
errorContainer: "#messageBox1",
errorLabelContainer: "#messageBox1 ul",
wrapper: "li",
debug:true,
rules: {
title: "required",
description: "required"
},
messages: {
title: "Titel saknas",
description: "Beskrivning saknas"
}
});
}
$("#newticketmanu").live('click',function(event){
$("#adminarea").load("http://" + hostname + "/" + compdir + "/modules/core/newticket/newticket.php", function(){
$('#my_file_element').MultiFile();
addNewTicketValidation();
});
});
私のフォームは:
<form method="post" enctype="multipart/form-data" id="newticketform" class="MultiFile-intercepted" novalidate="novalidate">
<input type="hidden" value="2000000" name="MAX_FILE_SIZE">
<label for="title">Rubrik</label> <input type="text" name="title" id="title"><br><br>
<label for="description">Beskrivning</label> <textarea name="description" id="description" cols="50" rows="15"></textarea><br>
<div id="my_file_element_wrap" class="MultiFile-wrap"><input type="file" maxlength="5" name="file[]" id="my_file_element" class="multi ignore MultiFile-applied" value=""><div id="my_file_element_wrap_list" class="MultiFile-list"></div></div>
<div id="files_list"></div>
<input type="submit" value="Upload" name="upload">
</form>
問題は何をすることができここで
は私validat()メソッドあり、また、私は、そのメソッドを追加した時点を含めますそれを修正する方法は?
ありがとうございます!
ありがとうございます!そうですか。だから問題は、MultiFileが属性としてmaxlengthを使用するので、プラグイン間に競合があることです。しかし、バリデーションプラグインはアトリビュートを気にしていますが、私はそれが「名前」のみを使用していると思いましたか?私はmaxlengthを削除したときに動作しました。根本的な原因は確かです。 – Nicsoft
実際の問題を解決するために、代わりにクラスを使用することができます。例えば。 class = 'max-2'はファイルの最大数を2に設定します。これはmaxlength属性と競合しません。 – Nicsoft