2015-05-15 2 views
3

Я пытаюсь создать div-строку «single-line» и «plain-text» contenteditable. Другими словами, я просто хочу сделать <input type="text">, но не присутствую в этой форме. Как я могу использовать форму contenteditablediv, чтобы представить форму <input type="text">?Простой текстовый и однострочный контент-доступный div

+0

дают некоторую высоту и ширину в DIV, может быть? – L4reds

+0

Итак, вам нужен div, похожий на тип ввода = текст? –

+0

Да, однострочный и простой текстовый контент. Он выглядит как «", но нет. –

ответ

5

Вы можете отключить Введите ключ для элемента contentEditable, используя JavaScript. Вот версия JQuery:

$('[contenteditable]').keypress(function (e) { 
 
    if (e.keyCode == 10 || e.keyCode == 13) { 
 
    e.preventDefault(); 
 
    // Submit the form, etc. 
 
    } 
 
}) 
 
.on('paste keyup', function() { 
 
    var _this = this; 
 
    setTimeout(function() { 
 
    // remove the markups 
 
    $(_this).html($(_this).text()); 
 
    }, 0); 
 
});
[contenteditable] * { 
 
    display: none; /* hide all descendants */ 
 
} 
 

 
[contenteditable] { 
 
    display: inline-block; 
 
    width: 200px; 
 
    overflow: hidden; 
 

 
    -webkit-appearance: textfield; 
 
    -moz-appearance: textfield; 
 
    appearance: textfield; 
 

 
    white-space: nowrap; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div contenteditable> 
 
    blah blah blah... 
 
</div>

+0

Но все еще проблема: как я могу убрать HTML-теги? –

+0

@RedWhale Это можно сделать, заменив содержимое элемента текстовыми узлами. В простом JavaScript существует 'element.textContent', который может получить/установить текстовое содержимое элемента. Версия jQuery - '.text()'. –

+0

контент не прокручивается - см. Http://stackoverflow.com/questions/16670931/hide-scroll-bar-but-still-being-able-to-scroll – 4esn0k

Смежные вопросы