2016-11-09 6 views
0

私は現在タイガのカスタム実装に取り​​組んでいます。カスタム入力フィールドのパターンをapp/partials/custom-attributes/custom-attribute-value-edit.jadeに配置しても、そのような指定されたパターンに従わないでくださいTaigaフロントエンドは無効な場合でもカスタム属性の変更を送信します

input#custom-field-value(name="value", type="tel", pattern="^\\+\\d{1,3}\\s\\d{1,3}\\s\\d{3}\\s\\d{4}$", placeholder="format: +[country_code] [area_code] [xxx] [xxxx] (e.g: +1 234 567 8910)", value!="<%- value %>") 

フォームは依然としてバックエンドに送信されます。パターンは一致しないという簡単なメッセージが表示されますが、フォームはまだ提出されています。私はプロセスをトレースになった最も遠いがある部分が提出

submit = debounce 2000, (event) => 
     event.preventDefault() 

     form = $el.find("form").checksley() 
     return if not form.validate() 

     input = $el.find("input[name=value], textarea[name='value'], select[name='value']") 
     attributeValue.value = input.val() 
     if input.prop("type") == 'checkbox' 
      if input[0].checkValidity() 
       attributeValue.value = !!input.prop("checked") 

を処理するためにありますが、それは限り私が得たようだ。このファイル app/coffee/modules/common/custom-field-values.coffee

にしました。私の目標は、指定されたパターンに従わない入力のような入力検証の問題がある場合、サブミットが発生しないようにすることです。私はタイガの現在のバージョン3.0.0を使用しています

答えて

0

私はそれを最終的に考え出しました。 Taigaはフォームの検証にチェックリストを使用します。通常の入力フィールドバリデータのような正規表現に "pattern"を使用する代わりに、私はchecksleyの属性data-regexpを使用しました。これは私が必要とした検証を処理しました。

input#custom-field-value(name="value", type="tel", data-regexp="^\\+\\d{1,3}\\s\\d{1,3}\\s\\d{3}\\s\\d{4}$", placeholder="format: +[country_code] [area_code] [xxx] [xxxx] (e.g: +1 234 567 8910)", value!="<%- value %>") 

ドキュメントには、次のリンク

https://media.readthedocs.org/pdf/checksley/latest/checksley.pdf

で見つけることができます
関連する問題