【问题标题】:place holder like after text in text box [closed]文本框中文本后的占位符[关闭]
【发布时间】:2015-12-15 10:21:29
【问题描述】:

我们想在文本框之后显示一些通知。 就像,如果过滤器被激活,那么我们想在文本之后显示“过滤器激活”。 文本是用户输入的,所以如果他们改变了文本框的文本,那么它会根据文本的长度自动调整。

例如:-

Sample image creation

我试过了

JsFiddle

但它总是在右边或总是在左边。

#clear {
right: 39px;
background: #f1f1f1;
color: rgb(187, 187, 187);
font-weight: bold;
cursor: pointer;
width: 104px;
height: 36px;
display: block;
position: absolute;
/* right: 2px; */
top: 2px;
 }
.search-form {
width: 100%;
padding-right: 52px;
font-size: 19px;
font-family: 'Merriweather', sans-serif;
font-style: italic;
height:30px;
 }
<input type="text" id="auto" class="search-form" >
<div id="clear">Filtering active</div>

不重复:-

 Place holder is different from this. Place holder is talking about the text box, What text box can contain. But this is talking about the filtering. 

【问题讨论】:

  • 我不认为它可能与那个小代码...检查选择的插件它看起来像那样
  • 小代码?那么我们如何才能做到这一点呢?
  • 使用纯 css 这是不可能的。您可以在输入文本中设置过滤器或任何内容,但不能在文本旁边调整它
  • 如果只有一个值,那么在值之后就没有任何意义

标签: html css


【解决方案1】:

我会使用一些黑魔法:jsfiddle

我是从头开始写的,所以添加一些你的样式。

$('.inputText').on('keyup', function () {
  var value = $(this).text();  
  $('#hidden').val(value).change();
});

$('#hidden').on('change', function () {
  var text = $(this).val();
  $('.test').html(text);
});
$('.clear').on('click', function () {
  alert('Hello!');
});
.input {
    position: relative;  
    display: inline-block;
    border: 1px solid gray;
    border-radius: 3px;
    line-height: 30px;
    padding: 0 10px 0 10px;
}
.inputText {
    display: inline-block;
    min-width: 150px;
    outline: none;
}
.clear {
    display: inline-block;
    width: 120px;
    height: 30px;
    padding-left: 10px;
    right:0;
    top:0;
    background-color:#f4f4f4;
    border-radius: 3px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div class="container">
    <input type="hidden" id="hidden" >     
    <span class='input'>
        <span contenteditable='true' class='inputText'> </span>
        <span class='clear'>Filtrering aktiv</span>
    </span>    
</div>
<div>
    <small class='test'></small>
</div>

【讨论】:

  • 对不起,但这不是我想要的。这里的“过滤活动”是恒定的,它不动。我想在文本之后添加“过滤 aktiv”。文字短或长。
  • @RenuThakur 'Filtring aktiv' 不是恒定的,它在移动,请尝试输入更多文本。您还可以更改 .inputText min-width 属性并使输入的初始宽度尽可能小。
  • 是的,没错。你能检查一下吗booli.se/ystad/117021/…
【解决方案2】:

没有一点 javascript,在 HTML/CSS 中是不可能的。

我用一种可能性和 jQuery 制作了一个快速工作示例: http://jsfiddle.net/4t05kh2p/1/

这个想法是将输入的文本复制到一个不可见的跨度中,这会将您的标签推到右侧:

HTML:

<div id="group">
  <input type="text" id="auto" class="search-form" >
  <div id="clear"><span class="spacer"></span><span class="text">Filtrering aktiv</span></div>
</div>

JS:

$('#auto').on('keyup', function(){
  $('#clear .spacer').text($(this).val());
});

CSS:

#clear {
  cursor: pointer;
  position: absolute;
  white-space: nowrap;
  top: 16px;
  left: 20px;
  height: 0;
}
#clear .spacer {
  visibility: hidden;
  font-size: 19px;
}
#clear .text {
  display: inline-block;
  background: #f1f1f1;
  font-weight: bold;
  padding: 3px;
}
.search-form {
  width: 100%;
  font-size: 19px;
  height:30px;
}

【讨论】:

  • 虽然它可以工作,但它真的不像我们想要的那样工作只是输入然后点击文本..您可以在点击文本时进行编辑,因为空间重叠它虽然 +1 努力
  • 它在firefox上运行,但经过一些调整,它也可以在其他浏览器上运行(jsfiddle.net/4t05kh2p/2
  • 看看这个jsfiddle.net/31gx15n3 我刚刚编辑了一点css,现在它工作正常......你的例子真的很好
  • 这有点我想要的。需要一些修改。让我检查一下,我会接受这个答案。顺便说一句,投票支持了解我的要求。
  • 它工作正常,但问题是由于不可见的跨度,我现在无法点击文本框。
猜你喜欢
  • 1970-01-01
  • 2020-06-12
  • 2020-05-27
  • 1970-01-01
  • 2023-04-08
  • 2013-06-07
  • 2015-12-15
  • 2011-07-29
  • 1970-01-01
相关资源
最近更新 更多