Как добавить «второй заполнитель» во входной текст

#javascript #html #jquery #css

#javascript #HTML #jquery #css

Вопрос:

Мне нужно добавить второй текст (обязательно) во входной текст, другой стиль / положение заполнителя. Но когда пользователь нажимает, он должен исчезнуть, как заполнитель. Это возможно?

 <style>
  .inputDataText{
    padding:13px; 
    border-width:1px; 
    border-radius:9px; 
    border-style:solid; 
    border-color:#d9d9d9; 
    width:100%;
  }
  
</style>
<input id="demoTextBox" type="text" value="" class="inputDataText" placeholder="NAME">
  

Поместите пример изображения здесь:

Входное изображение

Комментарии:

1. Если вы указали фиксированную ширину для элемента ввода, вы можете добавить пробелы в существующий текст-заполнитель, чтобы сдвинуть часть текста вправо. Эти пробелы сохраняются при визуализации текста

2. взгляните на: codepen.io/Takumari85/pen/RaYwpJ «Ввод с эффектами надписей» внизу страницы. Это возможно, да, но вам, возможно, придется разобраться с этим самостоятельно.

3. Кроме того, обычно используется * рядом с элементом ввода и примечанием над или под всеми из них, в котором говорится, что эти элементы являются обязательными.

4. Почему бы просто не использовать «Имя (обязательно)» в качестве заполнителя?

Ответ №1:

попробуйте

 .inputDataText{
    padding:13px; 
    border-width:1px; 
    border-radius:9px; 
    border-style:solid; 
    border-color:#d9d9d9; 
    width:100%;
    box-sizing: border-box;
  }
  .inputwrapper{
   position: relative;
  }
 .inputwrapper::after {
    content: attr(data-required);
    position: absolute;
    right: 8px;
    top: 50%;
    font-size: 15px;
    transform: translateY(-50%);
    color: #ccc;
}  
 <div class="inputwrapper" data-required="(required)">
<input id="demoTextBox" type="text" value="" class="inputDataText" placeholder="NAME">
</div>  

Комментарии:

1. Я тоже собирался ответить на этот вопрос, но @Lalji был быстрее :). Однако вот ссылка на мою реализацию, которая очень похожа: codepen.io/zvona/pen/XWdGJNK

Ответ №2:

Это можно сделать с :empty помощью псевдоселектора

 .inputDataText:empty::after {
  // show something
}

.inputDataText::after {
  // hide something
}

You will have to play with the exact CSS, but that's the gist