【问题标题】:html input type button within a hidden div shrink on hide() show() toggle隐藏div中的html输入类型按钮在隐藏()显示()切换时缩小
【发布时间】:2012-08-06 21:10:13
【问题描述】:

我有一个表单,它有一个隐藏的<div>,当单击按钮时会显示。在隐藏的<div> 中有输入字段,包括按钮

当我第一次单击“添加”时,div 会按原样显示。我按取消关闭 div,然后重新单击“添加”,div 显示尺寸缩小的按钮。

检查 jsfiddle: http://jsfiddle.net/uc3Ef/

【问题讨论】:

  • 大声笑...谢谢大家指出这一点...

标签: jquery html


【解决方案1】:

这是因为您将所有input 元素的value 属性设置为空,而value 属性用作按钮的标签文本。

改变这个:

$('.hiddenDiv').find('input').each(function(){
    $(this).val("");
});

收件人:

$('.hiddenDiv').find('input[type="text"]').each(function(){
     $(this).val("");
});

这是一个演示:http://jsfiddle.net/uc3Ef/1/

另外,你不需要在这里使用.each(),你可以这样做:

$('.hiddenDiv').find('input[type="text"]').val("");

这是因为.val(STRING) 将设置所有选定元素的值。这是.val()的文档:http://api.jquery.com/val

这是一个演示:http://jsfiddle.net/uc3Ef/3/

【讨论】:

    【解决方案2】:

    当您点击cancel时,您正在清除该值

    $(this).val("");
    

    【讨论】:

      【解决方案3】:

      它们正在“缩小”,因为您正在清除值(即按钮显示的文本)。

      从取消按钮单击事件中删除这一行,然后重试:)

      $(this).val("");
      

      【讨论】:

        【解决方案4】:

        您将输入的值设置为"" 并且您的输入选择器选择了按钮,您可以使用input[type="text"] 代替,也不需要使用each 方法,您可以使用:

         $('.hiddenDiv').find('input[type="text"]').val("");
        

        jQueryshow()方法等于css('display', 'block'),使用show()来显示元素就足够了:

         $('.hiddenDiv').show();   
        

        DEMO

        【讨论】:

          猜你喜欢
          • 2011-05-30
          • 1970-01-01
          • 2016-05-21
          • 2023-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多