2014-04-28 138 views
0

如果選定的項目是第一個下拉列表中的第一個選項,我有問題關於如何使第二個下拉列表隱藏/取消隱藏。由於這是更多的前端,我想我會使用AJAX。如何讓第二個下拉框從第一個下拉框的選項中隱藏/取消隱藏?

我使用X-editable小部件,下面的代碼:

<div class="control-group"> 
    <label class="control-label" for="category">大カテゴリ</label> 
     <div class="controls"> 
     <?php 
      $criteria = new CDbCriteria; 
      $criteria -> condition = 'parent_id=:parent_id AND school_id=:school_id AND status=:status'; 
      $criteria -> params = array(':parent_id' => 0, ':school_id' => $school_account_info -> id, ':status' => 'active'); 
     ?> 

     <?php 
      $this->widget('editable.EditableField', array(
       'id'  => 'drop', //ADDED THIS LINE SO I COULD GET THE SELECTED VALUE BUT I GUESS I'M WRONG 
       'type'  => 'select', 
       'model'  => $model, 
       'attribute' => 'category', 
       'url'  => '/school/Materials_Photos/View', 
       'source' => Editable::source(AssetCategory::model()->findAll($criteria),'id','category'), 
       'placement' => 'right', 
      )); 
     ?> 

     </div> 
</div> 

//SECOND DROPDOWN (SAMPLE ONLY) 
<div class="control-group" id="sub_category" style="display: none"> 
    <label class="control-label" for="category">中カテゴリ</label> 
    <div class="controls"> 
     <?php echo CHtml::dropDownList('sub_category', '', array(), array('prompt' => 'Select')); ?> 
    </div> 
</div> 

但後來我看到這一點:

<a href="#" id="status" data-type="select" data-pk="1" data-url="/post" data-title="Select"></a> 
<script> 
$(function(){ 
    $('#status').editable({ 
     value: 2,  
     source: [ 
       {value: 1, text: 'Active'}, 
       {value: 2, text: 'Blocked'}, 
       {value: 3, text: 'Deleted'} 
      ] 
    }); 
}); 
</script> 

,我認爲這是比較實用的,我只是想不通怎麼樣通過JS從ActiveRecord獲取源代碼。

回答

1

檢查驗證回調。可能會幫助你。當你點擊確定按鈕時,驗證會觸發。

在這裏閱讀。 http://x-editable.demopage.ru/index.php?r=site/widgets#Options

嘗試這樣

 <?php 
     $this->widget('editable.EditableField', array(
      'id' => 'drop', //ADDED THIS LINE SO I COULD GET THE SELECTED VALUE BUT I GUESS I'M WRONG 
      'type' => 'select', 
      'model' => $model, 
      'attribute' => 'category', 
      'url' => '/school/Materials_Photos/View', 
      'source' => Editable::source(AssetCategory::model()->findAll($criteria), 'id', 'category'), 
      'placement' => 'right', 
      'validate' => 'js: function(value) 
      { 
       console.log(value); //The value you are selecting from x-editable dropdown 
       if($.trim(value) == "Somthing") 
       { 
        //Your functionality 
       } 
      }' 
     )); 
     ?> 
+0

感謝您的鏈接,我找不到參數參考的文檔。我只找到了使用示例,現在我使用validate屬性來獲取選定的值。 –

1

難道你不能簡單地使用jQuery的呢?

$(document).ready(function() { 
    var drop1val = $(".drop1").val(); 
    if (drop1val == "first") 
    { 
      $(".drop2").hide(); 
    } else { 
      $(".drop2").show(); 
    } 
}); 

我不確定x可編輯小部件是什麼,但是我只是假設就一般的html表單而言,我的代碼應該可以工作。至少要考慮一些事情。

如果你的代碼生成一個下拉列表,那麼通過創建一個then就可以爲該標籤添加一個類或ID?

+0

我使用Yii框架X編輯控件,所以我需要利用它的屬性。不過謝謝。 –

相關問題