2012-10-31 34 views
7

Bằng cách sử dụng thuộc tính disabled trên đầu vào có thể để ngăn đầu vào của người dùng và kích hoạt giao diện hơi khác.
Đây là bản demo http://jsfiddle.net/D2RLR/3023/Đầu vào bị tắt trong bootstrap. Làm thế nào để áp dụng nó cho một TAG khác nhau?

Giả sử tôi muốn áp dụng cùng một kiểu cho một TAG khác như bảng.
Thực tế, tôi đang sử dụng handsontable để tạo một Excel-like data grid editor.
Làm cách nào để áp dụng disabled attribute trong ngữ cảnh sau (TAG như bảng)?

Dưới đây là bản demo sử dụng handsontablebootstraphttp://jsfiddle.net/D2RLR/3025/

+1

Bạn không thể trừ khi các plugin có một số tùy chọn để làm như vậy, như những người đang chỉ r các yếu tố kỳ dị di chuyển xung quanh với đường viền màu xanh và mọi thứ. Gần nhất là chỉ ghi đè các sự kiện từ plugin hoặc tạo plugin của riêng bạn. – adeneo

+0

@adeneo cảm ơn nhận xét của bạn. Dù sao, có lẽ tôi không nên áp dụng 'thuộc tính bị vô hiệu hóa' trên bảng nhưng tìm cách áp dụng nó vào biểu mẫu đầu vào khi nhấp vào ô thuộc về một lưới dữ liệu có thể ghi được. Bất kỳ ý tưởng làm thế nào để làm cho nó? –

Trả lời

6

Kiểm tra ở đây:

http://handsontable.com/demo/conditional.html

.readOnly tài sản di động - sử dụng nó!

Đầu vào HTML cũng có thuộc tính readonly, không chỉ là thuộc tính disabled, có một số khác biệt đáng kể giữa hành vi của chúng.

+0

+1 Cảm ơn câu trả lời của bạn.Tôi đã biết về thuộc tính 'readOnly cell'. Dù sao thì cái chết của tôi cũng khác. Tôi muốn áp dụng cho ô này kiểu 'đầu vào bị vô hiệu hóa 'như trong bootstrap. –

0

Boostrap chỉ styling đầu vào dựa trên thuộc tính tàn tật của họ như:

input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { 
    background-color: #EEEEEE; 
    cursor: not-allowed; 
} 

Vì vậy, bạn sẽ không thể sử dụng bootstrap để làm điều đó, bởi vì bảng không có thuộc tính như vậy.

Bạn nên sử dụng một plugin sắp xếp hoặc cuộn của riêng bạn.

6

Bạn không thể áp dụng kiểu dáng input[disabled] hiện có của Bootstrap, nhưng bạn có thể thêm CSS mới bắt chước chính xác kiểu.

Ví dụ:

#exampleGrid td { 
    cursor: not-allowed; 
    background-color: #EEE; 
    color: #9E9999; 
} 

Rõ ràng điều này không bao gồm logic readonly của bạn, và looks a little weird with your fiddle (vì các tiêu đề cột và hàng là cùng một màu sắc), nhưng đó là ý chính của nó.

0

Có thể điều này có thể giúp ... thay đổi giao diện của ô và bạn có thể chỉnh sửa trên đó.

HTML

<table class="editableTable"> 
    <thead> 
     <tr> 
      <th>Code</th> 
      <th>Name</th> 
      <th>E-mail</th> 
      <th>Telephone</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>001</td> 
      <td>João Carlos</td> 
      <td>[email protected]</td> 
      <td>(21) 9999-8888</td> 
     </tr> 
     <tr> 
      <td>002</td> 
      <td>Maria Silva</td> 
      <td>[email protected]</td> 
      <td>(81) 8787-8686</td> 
     </tr> 
     <tr> 
      <td>003</td> 
      <td>José Pedro</td> 
      <td>[email protected]</td> 
      <td>(84) 3232-3232</td> 
     </tr> 
    </tbody> 
</table> 

CSS

* { 
    font-family: Consolas; 
} 

.editableTable { 
    border: solid 1px; 
    width: 100% 
} 

.editableTable td { 
    border: solid 1px; 
} 

.editableTable .editingCell { 
    padding: 0; 
} 

.editableTable .editingCell input[type=text] { 
    width: 100%; 
    border: 0; 
    background-color: rgb(255,253,210); 
} 

JS

$(function() { 

    $("td").dblclick(function() { 
     var originalContent = $(this).text(); 

     $(this).addClass("editingCell"); 
     $(this).html("<input type='text' value='" + originalContent + "' />"); 
     $(this).children().first().focus(); 

     $(this).children().first().keypress(function (e) { 
      if (e.which == 13) { 
       var newContent = $(this).val(); 
       $(this).parent().text(newContent); 
       $(this).parent().removeClass("editingCell"); 
      } 
     }); 

     $(this).children().first().blur(function(){ 
      $(this).parent().text(originalContent); 
      $(this).parent().removeClass("editingCell"); 
     }); 
    }); 

}); 
Các vấn đề liên quan