バージョン選択

フォーラム

メニュー

オンライン状況

47 人のユーザが現在オンラインです。 (25 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 46
aduq もっと...

サイト内検索

質問 > フロント機能 > ECCUBE3 バリデーションの違いについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ikt3
投稿日時: 2019/6/3 17:27
対応状況: 解決済
新米
登録日: 2019/6/3
居住地:
投稿: 2
ECCUBE3 バリデーションの違いについて
▼テンプレート
[EC-CUBE] 3.0.17
[レンタルサーバ] xserver
[OS] win10
[PHP] 7.0.30
[データベース] MySQL 5.7.16
[ブラウザ]  chrome
[カスタマイズの有無] バリデーション部分、(src/Eccube/Form/Type/Front/EntryType.php)は特に触っています。


[現象]
会員登録画面(https://demo3.ec-cube.net/entry)や
お問い合わせ(https://demo3.ec-cube.net/contact)でのバリデーションはブラウザのバリデーションが適応されていると思います。

ですが、お届け先変更(https://demo3.ec-cube.net/shopping/shipping_edit/XXXX
はECCUBEのバリデーションが効いているように見えるのですが、
この違いは何なのでしょうか…?

困っているのが、ヘッダーを固定化(position:fixed)しているため
ブラウザのバリデーションがヘッダーとかぶってしまいます…

できればお届け先変更と同じようにECCUBEのバリデーションをかけることができればありがたいのですが、
現状javascriptでバリデーションを制御するしかないのでしょうか

https://umebius.com/eccube/various_form_validation/

            $builder
            ->add('name', 'text', array(
                'label' => '名称',
                'required' => true,
                'constraints' => array(
                    new Assert\NotBlank(),
                ),
            ))

この記事を見て試したのですが、上記のコードの'required' => true,を
'required' => false,に変更して試してみたのですが、逆に必須から外れてしまいました。


またご意見いただければ幸いです。
468
投稿日時: 2019/6/4 8:53
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2340
Re: ECCUBE3 バリデーションの違いについて
'required' => true

がhtml上のrequired属性を制御しているのですが
「必須」のキーワードとも連動するようにtwigの共通処理で作られていると思われます。
「必須」のキーワードの表示を判断する値が他に存在しない事、
該当処理を共通処理から取り出すには修正箇所(全てのform周りを変更する必要がでてくるのでは?)が多い事から
'required' => falseにして「必須」の文字を残すのは難しいと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

ikt3
投稿日時: 2019/6/4 22:40
対応状況: 解決済
新米
登録日: 2019/6/3
居住地:
投稿: 2
Re: ECCUBE3 バリデーションの違いについて
ご返信ありがとうございます。

いろいろ調べたのですが、
各フォームに
<form method="post" name="nonmenber_form" novalidate="novalidate" action="{{ url('shopping_nonmember') }}">

のように


novalidate="novalidate"
こちらを記述することで、ブラウザのバリデーションを効かないようにし、eccubeのバリデーションが効かせることができました。

また、
'required' => true

こちらもtrueにしたままなので「必須」の文字は残ったままになります。

>>当処理を共通処理から取り出すには修正箇所(全てのform周りを変更する必要がでてくるのでは?)
こちらおっしゃる通りでした…
formが入っているページをほとんど触ることになりました…


バリデーションはざっと確認しただけなので…
大丈夫だと思いますが、もしかするとhtmlのバリデーションを外すことによってなにかチェック漏れが起こるかもしれません。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は62,555名です
総投稿数は96,377件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2340
4
nanasess
2044
5
yuh
1612
6
umebius
1588
7
red
1404
8
h_tanaka
1011
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.