2017-05-18 15 views
0

私はエラーを表示するために上記のフォームを1つ使用しています。この場合、各エラーメッセージの前にいくつかのプレフィックスが必要です。通常、対応するラベルタグのテキストです。parsley.jsエラーメッセージのテキストを拡張する

私はこの機能を拡張機能として実装しましたが、これは手動で実行する新しい機能と同じですが、この場合はデフォルトのUI動作を失ってしまいました。

したがって、パースリーの一部として(パーズリーを拡張することによって)そのような振る舞いを実装することは可能でしょうか?

答えて

0

私は2つの内部機能を拡張することで、望ましい動作を実装しました。それは良いアイデアだったが、それは、私はいくつかの特定の場合に必要な正確に何を行いわからない:

(function ($) { 
 

 
    function getFieldLabel(parsleyField, suffix) { 
 
     var result = '', 
 
      labels = $('label[for=' + parsleyField.$element.prop('id') + ']'); 
 

 
     suffix = suffix || ''; 
 
     if (labels.length) { 
 
      result = labels[0].innerText + suffix; 
 
     } 
 

 
     return result; 
 
    } 
 

 
    window.ParsleyExtend = window.ParsleyExtend || {}; 
 
    window.ParsleyExtend = $.extend(window.ParsleyExtend, { 
 
     // NB! this method replaces parsley's default `_addError` 
 
     _addError: function _addError(name, _ref5) { 
 
      var message = _ref5.message; 
 
      var assert = _ref5.assert; 
 

 
      this._insertErrorWrapper(); 
 
      this._ui.$errorsWrapper.addClass('filled').append($(this.options.errorTemplate).addClass('parsley-' + name).html(
 
       getFieldLabel(this, ' - ') + (message || this._getErrorMessage(assert)) 
 
      )); 
 
     }, 
 

 
     // NB! this method replaces parsley's default `_updateError` 
 
     _updateError: function _updateError(name, _ref6) { 
 
      var message = _ref6.message; 
 
      var assert = _ref6.assert; 
 

 
      this._ui.$errorsWrapper.addClass('filled').find('.parsley-' + name).html(
 
       getFieldLabel(this, ' - ') + (message || this._getErrorMessage(assert)) 
 
      ); 
 
     } 
 
    }); 
 

 
})(jQuery);

0

parsleyがエラーをどこに置くかは、errorsContainerでカスタマイズできます。サマリーエリア内にコンテナを作成する関数である可能性があります。

このエラーコンテナには、ユーザーが入力するその他の情報も含まれている可能性があります。

より良いエラーメッセージシステムが必要です。特に、this issueを参照してください。

+0

私はプラグインをハッキングではなく、追加の機能を追加することによって、これを達成することはできますか? – SLY

+0

あなたは何を意味するかわかりませんが、必要に応じてオプションをグローバルに設定できます。 –

+0

ああ、私たちはさまざまなことを話します...どのように各エラーテキストの前にラベルを表示するためにパセリを拡張できますか?このように 'label1 - フィールドが必要ですlabel2 - 値が%未満です... '私は各要素ごとに個別にエラーメッセージを設定できますが、ラベル+エラーメッセージをデフォルトのプラグインの動作にしたいと思っています – SLY

関連する問題