バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 問い合わせページに追加した必須項目のバリデーションチェックが機能しない

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soony
投稿日時: 2017/4/24 7:13
対応状況: −−−
新米
登録日: 2017/2/9
居住地:
投稿: 6
問い合わせページに追加した必須項目のバリデーションチェックが機能しない
▼テンプレート
[EC-CUBE] 3.0.13 新規インストール
[OS] CentOS6.8
[PHP] PHP7.0.16
[データベース] mysql 5.1.73
[WEBサーバ] Apache 2.2
[ブラウザ] iPhone6 safari

こんにちは。

お問い合わせページに、プルダウン型の必須項目を追加しましたが、
その、必須入力チェックが動かずに困っています。

おおむねのブラウザは、タグに"require"が付くことで、
ブラウザ上で未入力の場合は入力を促される挙動をしますが、
iPhone-safariは、それが働かずにsubmitされ、
php側でのバリデーションチェックが動かないという状況です。
※電話番号などの他の必須チェックは正常に未入力エラーを検出します。

記述しているコードは以下の通りです。


/src/Eccube/Form/Type/Front/ContactType.php


public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('type', 'choice', array(
            'label'     => 'お問い合わせの種類',
            'choices'   => array(
                '' => '選択してください',
                '選択項目1' => '選択項目1',
                '選択項目2' => '選択項目2',
                '選択項目3' => '選択項目3',
                'その他' => 'その他',
            ),
            'required'  => true,
        ))
    ……



/app/template/default/Contact/index.twig


  <dl id="top_box__type">
    <dt>{{ form_label(form.type) }}</dt>
    <dd class="form-group">
      {{ form_widget(form.type) }}
      {{ form_errors(form.type) }}
    </dd>
  </dl>



どうぞ、よろしくお願いいたします。

hmorita_j
投稿日時: 2017/4/24 8:24
対応状況: −−−
長老
登録日: 2017/3/3
居住地: 沈黙の巨大都市松戸
投稿: 222
Re: 問い合わせページに追加した必須項目のバリデーションチェックが機能しない
html5のrequired属性はブラウザによっては機能しないこともありますし、
機能したとしても、必須項目であればサーバ側でバリデーションチェックするのが良いと思います。


->add('type', 'choice', array(
                'label'     => 'お問い合わせの種類',
                'choices'   => array(
                    '' => '選択してください',
                    '選択項目1' => '選択項目1',
                    '選択項目2' => '選択項目2',
                    '選択項目3' => '選択項目3',
                    'その他' => 'その他',
                ),
                'required'  => true,
                'constraints' => array(
                    new Assert\NotBlank(),
                )
            ))


こんな感じで空チェックするのが良いと思います。
soony
投稿日時: 2017/4/25 10:13
対応状況: 解決済
新米
登録日: 2017/2/9
居住地:
投稿: 6
Re: 問い合わせページに追加した必須項目のバリデーションチェックが機能しない
hmorita_jさん

ご回答ありがとうございます。


'constraints' => array(
    new Assert\NotBlank(),
)


まさに、こちらのコードが必要でした。
大変助かりました。

と、、、よく見れば、メールアドレスとお問い合わせ内容にも、
このコードがありますね・・・(汗)
見逃しておりました。
(電話番号は、この記述がないのに必須チェックが動くので、
もっと別のところで何か指定する必要があるのだろうと思ってました・・・)

どうもありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,287名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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