5

jQuery validation pluginフォームの検証にを使用しています。ただし、の検証を設定できませんdiv

これが私がこれまでに試したことです

HTML:

<form id="form">
  <div id="location" name="location"></div>
</form>

JS:

$('#form').validate({
            rules: {
            isLocationEmpty: true;
            }
});

CustomValidation メソッド:

$.validator.addMethod('isLocationEmpty', function (value, element) {        
    var loc = $('#location').text();
    return (loc != "")
}, 'REQUIRED.');

私は以前にこれを行ったことがありません。あなたの提案をしてください。

4

2 に答える 2

10

引用OP:

「フォームの検証に jQuery Validation プラグインを使用しています....しかし、 の検証を設定できませんdiv。以前にこれを行ったことがありません。提案を提供してください。」

jQuery Validate プラグインを使用してdiv. データ入力のための適切な HTML マークアップは、input 要素を使用することです。

このプラグインは、次の種類のデータ入力要素 (それぞれに一意の属性が必要) でのみ機能し、要素コンテナー内にある必要があります。nameform

<form>

   <!-- // Input - Also including the various HTML5 input types
   // type = text, password, radio, checkbox, file, etc. -->
   <input type="text" name="something" />

   <!-- Hidden Input - 'ignore: []' must be defined in the options -->
   <input type="hidden" name="hide" />

   <!-- Select Dropdown -->
   <select name="foobar"> ... </select>

   <!-- Text Area Box -->
   <textarea name="barfoo"></textarea>

</form>

ドキュメントの「リファレンス」ページも参照してください: http://jqueryvalidation.org/reference/


どうやらOPはHTMLを変更できません。これは非常に醜い回避策です。

divのテキストを要素にコピーするために使用できるコードtype="hidden"で、隠し要素をプラグインで検証できます。このコードは、いつでも呼び出すか、イベント ハンドラー内に配置して、ぼかしまたは変更時に起動できます。

$("#hidden").val( $('#div').text() );

対応するjQueryは次のとおりです。

$('#form').validate({
    ignore: [], // <-- validate hidden elements
    // other options, rules, and callbacks,
});
于 2013-09-26T17:28:44.473 に答える
-1

div を検証しようとしている理由はわかりませんが、テキストエリアにすることをお勧めします。ユーザーが編集できないようにする必要がある場合は、readonly 属性を追加します。

<form id="form">
  <textarea id="location" name="location" readonly></textarea>
</form>
于 2013-09-26T14:18:17.147 に答える