上記の解決策は素晴らしいですが、ユーザーが自然にちょうど維持しようとすると、入力ボックス内に、次のプレースホルダ値をクリックした場合と、それを続けると、それは完全に消去されます。
HTML::
<input id="other" list="values" value="<?php echo $val; ?>">
<datalist id="values">
<option value="orange">
<option value="banana">
</datalist>
JS:私にとって
jQuery(document).ready(function ($) {
function putValueBackFromPlaceholder() {
var $this = $('#other');
if ($this.val() === '') {
$this.val($this.attr('placeholder'));
$this.attr('placeholder','');
}
}
$('#other')
.on('click', function(e) {
var $this = $(this);
var inpLeft = $this.offset().left;
var inpWidth = $this.width();
var clickedLeft = e.clientX;
var clickedInInpLeft = clickedLeft - inpLeft;
var arrowBtnWidth = 12;
if ((inpWidth - clickedInInpLeft) < arrowBtnWidth) {
$this.attr('placeholder',$this.val());
$this.val('');
}
else {
putValueBackFromPlaceholder();
}
})
.on('mouseleave', putValueBackFromPlaceholder);
});
多くの入力ボックスがオンにそこにいる
は、したがって、上記のソリューションに基づいて、私は私のために、以下のソリューションをしましたページだけで、私はこの動作だけを持ってほしいので、私はIDで作業し、それを "個人的"にしてください。より一般的な関数に変更する場合は、クリックが発生した要素とイベント自体をputValueBackFromPlaceholder
にバインドする必要があります。
質問が不明です。 –
質問がどのように明確でないか説明してください。 –