2016-04-28 21 views
0

ケーキPHPの問題に悩まされています。私は、フロントエンドに表示されている場合にのみ、2つのフィールドのモデル内にバリデーションルールを追加したいと考えました。基本的には隠されています。選択ボックスの変更時には表示され、表示されている場合はそれらが必要になります。 私はあなたに私のコードcakePHP 2に動的に検証ルールを追加しました。*

<?php 
    echo $this->JqueryValidation->input('website',array(
      'type' => 'text', 
      'label' => 'Website', 
      'div' => true, 
      'class' => 'form-control', 
      'id' => 'InputWebsite', 
      'placeholder' => 'Enter your website' 
     )); 
?> 
<?php 
    echo $this->JqueryValidation->input('phone',array(
      'type' => 'text', 
      'label' => 'Phone', 
      'div' => true, 
      'class' => 'form-control', 
      'id' => 'InputPhone', 
      'placeholder' => 'Enter your contact Number' 
     )); 
?> 

<script> 
 
    $(document).ready(function() { 
 
    $('#InputPhone').parent('div').hide(); 
 
    $('#InputWebsite').parent('div').hide(); 
 

 

 
    $('#purpose').on('change', function(e) { 
 
     var optionVal = $(this).val(); 
 
     if (optionVal == 'Schedule a call') { 
 
     $('#InputPhone').parent('div').show(); 
 
     $('#InputWebsite').parent('div').show(); 
 
     $("#InputMessage").hide(); 
 
     $("#InputMessage").val(''); 
 
     $(".textarea").hide(); 
 
     } else { 
 
     $('#InputPhone').parent('div').hide(); 
 
     $('#InputPhone').val(''); 
 
     $('#InputWebsite').parent('div').hide(); 
 
     $('#InputWebsite').val(''); 
 
     $("#InputMessage").show(); 
 
     $(".textarea").show(); 
 
     } 
 
    }); 
 
    }); 
 
</script>

それを行うことは可能ですがお見せしましょうか?

答えて

0

beforeValidateモデル内で機能する場合、選択ボックスの値が他のフィールドを検証するために必要な値であることを確認します。それがそうだった場合、あなたの$validate配列($this->validate += array(...new rule...);を使って)にバリデーションルールを追加する必要があります。

関連する問題