2011-06-25 94 views
0

第一個問題,爲什麼是這種風格問題與jQuery的對話框插件

label, input { display:block; } 

減少dropdownchecklist下拉列表(文字出現在該複選框下方)的寬度是多少?該風格是程序的其他部分所需要的,所以消除風格並不那麼簡單。

第二個問題:如果我在jQuery對話框之外使用dropdownchecklist插件,它完美地工作。但是,如果將它添加到對話框中,寬度將減小到零,即使我在Firebug中調整寬度,它也不起作用(單擊不會生成下拉列表)。 's9'id來自dropdownchecklist演示代碼。

$(document).ready(function() {   

     $("#s9").dropdownchecklist({ textFormatFunction: function(options) { 
      var selectedOptions = options.filter(":selected"); 
      var countOfSelected = selectedOptions.size(); 
      switch(countOfSelected) { 
       case 0: return "Nobody"; 
       case 1: return selectedOptions.text(); 
       case options.size(): return "Everybody"; 
       default: return countOfSelected + " People"; 
      } 
     } }); 

以下代碼是從對話框演示中獲取的。

<div class="demo"> 
     <div id="dialog-form" title="Create new user"> 
      <p class="validateTips">All form fields are required.</p>    
      <form> 
      <fieldset> 
       <label for="userid">User ID</label> 
       <input type="text" name="userid" id="userid" class="text ui-widget-content ui-corner-all" />     
       <label for="password">Password</label> 
       <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" /> 
       <label for="email">email</label> 
       <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" />              
       <label for="locked">Locked</label> 
       <input type="checkbox" name="locked" id="locked" value="" >      
       <select id="s9" class="s9" multiple="multiple" > 
       <option>Alice</option> 
       <option>Bob</option> 
       <option>Christian</option> 
       <option>Daniel</option> 
       </select>     
      </fieldset>  
     </form> 
</div> 

我需要更改哪些內容才能使dropdownchecklist在對話框中工作?普通的下拉框工作得很好,但我希望複選框可以讓用戶更容易理解。

這太問題聽起來像是我的問題,但它似乎並沒有爲我工作: jQuery Plugin does not work in a Modal

謝謝。

回答

1

關於第一個問題:塊級元素(如DIV,P等,或者用display: block作爲塊級別的元素)通常從新行開始。

您可以改爲使用display: inline-block,但它在舊版IE中支持較差(在IE6/7中部分支持,舊版本不支持)。一個更好的辦法很可能是把每個label + input一對<div> S和使用:

label, input { 
    display:block; 
    float: left; 
} 

關於你提到的第二個問題,我們可以看到一個活生生的例子或jQuery代碼?