【问题标题】:Showing and Hiding a submit button on focus/blur在焦点/模糊上显示和隐藏提交按钮
【发布时间】:2014-01-23 14:34:27
【问题描述】:

我想要一个文本区域表单,当聚焦时从 1 行扩展到 4 行,并且还显示隐藏的提交按钮 - 与 twitter 网站相同。

我有一个工作脚本,但问题是当您单击提交按钮时,它是隐藏的(焦点消失了),因此您实际上无法提交文本。

这是代码(咖啡脚本 - 用于 rails 表单)

$('.status-content').focus (event) ->
$(this).attr('rows', '4',)
$('.status-create').show()

$('.status-content').blur (event) ->
$(this).attr('rows', '1')
$('.status-create').hide()

.status-content 是文本区域类,.status-create 是提交按钮类。

关于如何在焦点关闭时隐藏按钮但仍提交文本的任何想法?

根据 Alex 的建议,我尝试添加一个 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 行。

【问题讨论】:

  • 想通了 - 在 setTimeout 函数中,需要将 'this' 更改为 '.status-content'

标签: jquery ruby-on-rails forms coffeescript


【解决方案1】:

只需更正您的代码即可。有

会更有意义
$('.status-content').on 'focus', ->
  $(this).attr('rows', '4',)
  $('.status-create').show()

$('.status-content').on 'blur', -> 
  $(this).attr('rows', '1')
  $('.status-create').hide()

【讨论】:

  • 这恐怕没有多大帮助 - 在提交内容之前按钮仍然消失
【解决方案2】:

一种方法是检查 textarea 是否不为空(没有咖啡脚本):

$('.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);
});

【讨论】:

  • 我把它改写成了 coffessscript。超时似乎到了一半 - 现在可以提交,但是当焦点关闭时,文本区域不会回到 1 行。
  • $('.status-content').focus (event) -> $(this).attr('rows', '4',) $('.status-create')。 show() $('.status-content').blur (event) -> setTimeout -> $(this).attr('rows', '1') $('.status-create').hide() , 100
猜你喜欢
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多