• 解決済 spacebros

    (@spacebros)


    MW WP Formに条件付きで必須項目を付ける方法を探しています。
    現在バリデーションルールから必須項目を指定しています。
    チェックボックスにチェックがあった場合のみ、必須にしたいテキストフィールドがあります。
    getElementByIdを使って記述したいと考えているのですが、通常の必須項目に
    <input required~という記述がなくどこで必須項目を行っているのかが分からず困っています。
    すいませんがご教示お願い致します。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • 複雑な条件でのバリデーションはフック経由で設定することができます。
    http://plugins.2inc.org/mw-wp-form/filter-hook/mwform_validation/

    トピック投稿者 spacebros

    (@spacebros)

    ご教示ありがとうございます。
    さっそくやってみます。

    トピック投稿者 spacebros

    (@spacebros)

    先ほどご教示頂いた方法を試しています。
    function my_validation_rule( $Validation, $data ) {
     if(isset($_POST[‘チェックボックスのname’]))
      {
    $Validation->set_Rule( ‘テキストフィールドのname’, ‘required’, array(
    ‘message’ => ‘必須項目です。’
    ) );
    }
      return $Validation;
      add_filter( ‘mwform_validation_mw-wp-form-フォーム識別子の key’,   ’my_validation_rule’, 10, 2 );
    }

    と記述してみたのですが、うまくいきません。考え方が間違っていますか?たびたびすいませんがよろしくお願い致します。

    トピック投稿者 spacebros

    (@spacebros)

    function my_validation_rule( $Validation, $data ) {
    if (isset($data[‘チェックボックスのname’])) {
    $Validation->set_rule( ‘テキストフィールドのname’, ‘noEmpty’ );
    }
    return $Validation;
    }
    add_filter( ‘mwform_validation_mw-wp-form-フォーム識別子の key’, ‘my_validation_Rule’, 10, 2 );

    とやってみました。
    しかしうまくいかず、確認したところ

    echo $data[‘チェックボックスのname’];

    と記述しても確認画面で値が表示されていないみたいです。
    どこが間違っているか教えていただけませんか?

    function my_validation_rule( $Validation, $values, $Data ) {
        var_dump( $Data->get( 'チェックボックスのname' ) );
        exit;
        if ( !is_null( $Data->get( 'チェックボックスのname' ) ) {
            $Validation->set_rule( 'テキストフィールドのname', 'noEmpty' );
        }
        return $Validation;
    }
    add_filter( 'mwform_validation_mw-wp-form-xxx', 'my_validation_rule', 10, 3 );

    のようにするとどうでしょう?処理が途中でとまらず普通に画面が表示された場合はきちんとフックを通っていませんのでフック名を確認してください。途中でとまった場合は、チェックボックスの値が表示されるはずですが、チェックしたのに null の場合はチェックボックスのnameが間違っている可能性があるので確認してください。

    トピック投稿者 spacebros

    (@spacebros)

    たびたびありがとうございます。
    ご教示頂いたコードを記述したのですが、フォームを表示させる時点で画面に「NULL」とだけ表示されてしまいます。
    どこが原因でしょうか?
    たびたびすいませんがよろしくお願い致します。

    あ、すみません、ちょっと勘違いしていました。でも NULL と表示されたということはフックはきちんと通っているということなので、exit; の部分を削除するとどうなりますか?

    トピック投稿者 spacebros

    (@spacebros)

    ご回答ありがとうございます。
    exit;
    を削除したら無事バリデーションが適応になりました。
    大変ありがとうございました。

8件の返信を表示中 - 1 - 8件目 (全8件中)

トピック「MW WP Formに条件付きで必須項目を付ける方法」には新たに返信することはできません。