2016-04-28 40 views
2

所以我試圖填充我的模態形式使用jQuery,但我不能使下拉列表工作。我是jquery的新手,所以我不確定我是否正確做事。這是我如何使用數據傳遞的值將jQuery:使用jquery在下拉列表中設置第一個選項的值

<a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#editItem" data-id="<?php echo $row_selectItem['item_id'];?>" data-no="<?php echo $row_selectItem['item_no'];?>" data-desc="<?php echo $row_selectItem['item_desc'];?>" data-cat="<?php echo $row_selectItem['cat_name'];?>" data-unit="<?php echo $row_selectItem['unit_name'];?>" data-quantity="<?php echo $row_selectItem['quantity'];?>" data-cost="<?php echo $row_selectItem['unit_cost'];?>" > 

而且我這是怎麼設置的jQuery的值,並將其顯示模式窗體上:

$('#editItem').on('show.bs.modal', function (e) { 
       var id = $(e.relatedTarget).data('id'); 
       var no = $(e.relatedTarget).data('no'); 
       var desc = $(e.relatedTarget).data('desc'); 
       var cat = $(e.relatedTarget).data('cat'); 
       var unit = $(e.relatedTarget).data('unit'); 
       var cost = $(e.relatedTarget).data('cost'); 
       var quantity = $(e.relatedTarget).data('quantity'); 
       $("#item_id").val(id); 
       $("#item_no").val(no); 
       $("#item_desc").val(desc); 
       $("#category option:first").val(cat); 
       $("#unit option:first").val(unit); 
       $("#unit_cost").val(cost); 
       $("#quantity").val(quantity); 
      }); 

      $('#editItem').on('hidden.bs.modal', function() { 
      $(this).removeData('bs.modal'); 
     }) 

類別和單位的下拉菜單名單。這是以前的值應該顯示爲下拉列表中的第一個選項的位置。其餘的正在工作。

這是我選擇模態形式的代碼。我不會包括其餘的人,只有選擇單位和類別。任何幫助將不勝感激:)

<div class="form-group"> 
    <select class="form-control" id="category" name="category"> 
    <option value=""></option> //value should be here 
    </select> 
    <span class="help-block"></span> 
</div> 
<div class="form-group"> 
    <select class="form-control" name="unit" id="unit"> 
    <option value=""></option>//value should be here 
    </select> 
    <span class="help-block"></span> 
</div> 
+0

這些下拉列表中已經添加了選項,你只是希望他們移動到頂部? – progrAmmar

+0

@progrAmmar它實際上是一個更新/編輯表單,這就是爲什麼我希望傳入的值是下拉列表中的第一個選項,以向用戶顯示它是當前值。 –

+0

檢查我的答案 – progrAmmar

回答

1

假設是你的HTML代碼

你可以試試這個

$("#category > option:first-child").val(cat); 
$("#unit > option:first-child").val(unit); 

如果您要設置該選項的文本:

$("#category > option:first-child").text(cat); 
$("#unit > option:first-child").text(unit); 

但是,如果您的選擇值已包含選項列表,並且您想要刪除所選的一個,並將其添加到頂端,那麼你可以做這樣的事情

if($('#category > option[value=' + cat + ']').length !== 0){ 
    $('#category > option[value=' + cat + ']').remove(); 
}  
$('#category').prepend(new Option(cat, cat)); 
+0

val沒有工作,但文本工作!!!!非常感謝你:) –

+0

我編輯添加另一種情況。 val會起作用,但您不會在屏幕上看到val,因爲它是下拉字段的值。請記住,該選項有兩個字段,即文本和值,文本是您在列表中看到的內容,值是作爲輸入發送到服務器的內容。 – progrAmmar

+0

好吧,明白了。謝謝 –

相關問題