【问题标题】:jQuery show submit button on input field clickjQuery在输入字段单击时显示提交按钮
【发布时间】:2010-05-04 15:07:53
【问题描述】:

我试图有一个评论输入字段,当您单击输入字段时,它将在动态创建的表单上显示提交按钮。 类似于 facebook cmets 的工作方式。当您单击输入字段时,会出现提交按钮,当您单击关闭时,它会消失。 所有评论输入 id 均为 comment_1 等,提交按钮 id 为 submit_1 等。

我试过了,

jQuery("#[id^='comment_']").live('click',function(event){ 
    if(jQuery("#[id^='comment_']").val() == ""){ 
        jQuery("#[id^='submit_']").hide(); 
    } 
    else { 
        jQuery("#[id^='submit_']").show(); 
    } 
}); 

由于某种原因,这行不通。任何建议或如何完成都会很棒。

【问题讨论】:

    标签: javascript jquery jquery-selectors


    【解决方案1】:

    您需要从选择器中删除 #。另外我认为你不想要click 事件,而是focusblur

    【讨论】:

      【解决方案2】:
      jQuery("[id^='comment_']").live('focusin focusout',function(e){
          var commentText = "Write a comment...",
              id = this.id.replace('comment_',''),
              val = jQuery(this).val();   
          if (e.type == 'focusin'){
              val = (val == commentText) ? '' : val; 
              jQuery("#submit_"+id).show();
          } else if (e.type == 'focusout') {
              val = (val == '') ? commentText : val; 
              if( val == commentText){ 
                  jQuery("#submit_"+id).hide(); 
              }
          }
          jQuery(this).val(val);
      }).trigger('focusout');
      

      【讨论】:

      • 我不知道为什么我的脸色不好..lol,还是不行。我在textarea上也有这个。 onclick="if (this.value=='写评论...') this.value='';"这仍然可以在 textarea 标签中使用吗?也可以将其合并到函数中吗?我取消了onclick,但它仍然不起作用。感谢您的帮助
      • 好吧,它现在有点用,问题是,它不是我需要的。当您单击输入字段时,我需要它来显示按钮,就好像您要开始输入一样。上面的代码仅在您先单击该字段后单击离开该字段时才显示提交按钮。
      • @Pjack 立即尝试,更新它以处理“写评论...”文本,它应该可以按照您的意愿工作。
      • 就是这样。完美。非常感谢。你肯定知道你的东西。实际上,我几分钟前就开始尝试使用 focusin 和 focusout,但并没有完全奏效。再次感谢
      猜你喜欢
      • 2012-08-07
      • 2021-09-10
      • 2017-08-15
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多