[英]Show last string when input value is empty?
这是我的HTML块
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#q1">
Question 1
</a>
</h4>
</div>
<div id="q1" class="panel-collapse collapse">
<div class="panel-body">
<div class="form-group">
<label for="inputQ1" class="col-sm-2 control-label">Question</label>
<div class="col-sm-7">
<input type="text" class="form-control" id="inputQ1" placeholder="e.g How was our service?">
</div>
</div>
</div>
</div>
和jQuery
$('.panel-body input').keyup(function () {
$(this).closest('.panel-collapse').prev('.panel-heading').find('a').text(this.value);
});
基本上,这是什么,无论用户在输入框中键入什么内容,它都将显示在锚标记中。
现在,我面临的问题是,当用户键入内容并决定删除输入框中的内容时,anchor标签将不再包含内容。 理想情况下,只要输入框处于焦点状态,它就应始终显示先前的内容。 我希望我对问题的描述足够清楚...
这是JSFiddle的链接http://jsfiddle.net/SpLsZ/
我已经更新了您的小提琴,请检查: http : //jsfiddle.net/SpLsZ/2/
我在您的锚标记中放置了一个数据变量value
。 当您的文本内容更改时,我现在正在检查它是否具有值。 如果不是,那么我正在检索数据value
并将其作为文本值插入。
<a href="#q1"
data-toggle="collapse"
data-parent="#accordion"
data-value="Question 1"
>Question 1</a>
$('.panel-body input').keyup(function () {
var header = $(this).closest('.panel-collapse').prev('.panel-heading').find('a');
if(this.value == "") {
header.text(header.data("value"));
} else {
header.text(this.value);
}
});
尝试这个:
$('.panel-body input').keyup(function () {
$(this).closest('.panel-collapse').prev('.panel-heading').find('a').text(
this.value || 'Question 1'
);
});
工作小提琴: http : //jsfiddle.net/SpLsZ/4/
像这样更改您的HTML标记:
<a data-toggle="collapse" data-parent="#accordion" href="#q1">
<span class="question">Question 1</span>
<span class="answer"></span>
</a>
这样,您不必担心存储任何值。 而您的JavaScript可以:
$('.panel-body input').keyup(function () {
var $link = $(this).closest('.panel-collapse').prev('.panel-heading').find('a');
var $question = $link.find('.question');
var $answer = $link.find('.answer');
if (this.value) {
$question.hide();
$answer.text(this.value);
} else {
$question.show();
$answer.empty();
}
});
如果有任何值,则隐藏问题文本并显示答案;如果未输入任何值,则显示问题和空答案。
尝试
$('.panel-body input').keyup(function () {
$(this).closest('.panel-collapse').prev('.panel-heading').find('a').text(this.value);
}).blur(function () {
if ($.trim(this.value) == '') {
$(this).closest('.panel-collapse').prev('.panel-heading').find('a').text(function () {
return $(this).data('default')
});
}
});
$('.panel-heading a').each(function () {
$(this).data('default', $(this).text());
})
演示: 小提琴
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.