我想有一个文本区域表单,从1行扩展到4当焦点,并显示否则隐藏提交按钮-相同的twitter网站。
我有一个工作脚本,但问题是当您单击submit按钮时,它是隐藏的(焦点消失了),因此您实际上无法提交文本。
下面是代码(用于rails表单的咖啡脚本)
$('.status-content').focus (event) ->
$(this).attr('rows', '4',)
$('.status-create').show()
$('.status-content').blur (event) ->
$(this).attr('rows', '1')
$('.status-create').hide()
状态-内容是文本区域类,.是submit按钮类。
当焦点关闭时,如何隐藏按钮,但仍然提交文本,有什么想法吗?
根据亚历克斯的建议,我尝试添加一个setTimeout:
$('.status-content').focus (event) ->
$(this).attr('rows', '4',)
$('.status-create').show()
$('.status-content').blur (event) ->
setTimeout ->
$(this).attr('rows', '1')
$('.status-create').hide()
, 100
虽然我现在可以提交,但当焦点丢失时,文本区域将保持在4行。
发布于 2014-01-06 00:24:51
一种方法是检查文本区域是否为空(没有咖啡脚本):
$('.status-content').blur(function(event) {
if ($(this).text().length) {
}
else {
$(this).attr('rows', '1');
$('.status-create').hide();
}
});
或者你做了个小把戏
var timer;
$('.status-content').blur(function() {
clearTimeout(timer);
timer = setTimeout(function() {
$(this).attr('rows', '1');
$('.status-create').hide();
}, 100);
});
$('.status-create').click(function() {
clearTimeout(timer);
});
发布于 2014-01-06 00:38:18
只要改正你的代码。如果你能
$('.status-content').on 'focus', ->
$(this).attr('rows', '4',)
$('.status-create').show()
$('.status-content').on 'blur', ->
$(this).attr('rows', '1')
$('.status-create').hide()
https://stackoverflow.com/questions/20945737
复制相似问题