2010-10-27 37 views
10

Tôi không chắc chắn lý do tại sao, nhưng nếu bạn có phần tử được bật có thể chỉnh sửa được, lần đầu tiên bạn nhập dấu cách, nó sẽ thêm một thẻ <br> vào phần tử. Nếu phần tử có khoảng trống trong đó theo mặc định (<p contenteditable="true">this is a test</p>), nó sẽ ổn, nhưng ngay sau khi người dùng nhấn phím cách đó (hoặc thậm chí sao chép + dán ký tự khoảng trắng), Firefox sẽ thêm <br _moz_dirty="" /> vào <p>.Có thể chỉnh sửa được thêm <br> khi tôi nhấn vào không gian

Có ai biết tại sao hoặc khắc phục đơn giản không? Đây là lần đầu tiên tôi chơi với contenteditable, vì vậy rất nhiều điều này là mới đối với tôi. Tại thời điểm này, tôi chỉ sử dụng $('br').remove() có vẻ như đang hoạt động, nhưng tôi rất thích một lời giải thích và một cách thích hợp để ngăn chặn nó nếu có ai biết.

+0

Điều này vẫn có thể tái sản xuất? Tôi chưa bao giờ gặp lỗi như vậy trong FF – YakovL

+0

Tôi gặp vấn đề tương tự, http://jsbin.com/xarirotali/edit?html,css,output Nhấn hai dấu cách ở cuối 'một số văn bản' và kiểm tra phần tử p trong FF và nó sẽ thêm một
. –

Trả lời

0

Tôi sử dụng preventDefault khi người dùng thực hiện trả lại vận chuyển. Có thể bạn có thể sửa đổi nó để trả về một không gian bình thường khi người dùng sử dụng phím khoảng trắng.

 if(e.keyCode==13 && e.shiftKey){ //enter && shift 
      e.preventDefault(); //Prevent default browser behavior 
      //this.html(this.html+"<br>"); 
     } 
     if(e.keyCode==13){ //enter 
      e.preventDefault(); //Prevent default browser behavior 
     } 
+0

điều này làm việc cho tôi. – Veera

+0

Tôi đã thử phương pháp này nhưng Chrome đang cho tôi lỗi này: 'Tham chiếu không bắt buộcError: e không được định nghĩa'. Bạn có biết tại sao? –

+0

Bạn không thể ngăn Firefox bổ sung
với e.preventDefault() –

Các vấn đề liên quan