【问题标题】:hide() jQuery does it reset the valuehide() jQuery 是否重置了值
【发布时间】:2015-07-07 13:16:10
【问题描述】:

我有一个问题,当使用 jQuery .hide() 函数按 ID 隐藏输入时,它会将字段/选择值重置为 [0]val('') 还是空等?我问的原因是因为如果用户显示一个字段,填充它,然后意识到他/她对具有显示/隐藏条件的输入做出了错误的决定。当他们再次隐藏该字段时,该值仍然存在吗?

防止.hide() 输入出现不必要的值的最理想方法是什么?

注意:我有一些隐藏的输入,它们总是为后端进程传递一个值,但这些表单类型总是隐藏的。

【问题讨论】:

  • 这是你可以通过在浏览器开发者控制台中尝试发现的东西。 .hide().show() 方法不会影响输入元素的值。
  • 那么最好的做法是删除触发了 hide() 函数的输入值吗?
  • 这取决于您希望用户界面如何工作;没有单一的答案。如果这些值包含敏感的个人信息,那么您可能需要清除它们以向您的用户保证您的软件对个人信息非常谨慎。如果没有,那么不考虑这些值可能更方便。
  • 但问题是,如果输入值然后隐藏,它们会被隐藏,因为它们不是必需的,所以从技术上讲,如果在不需要时该值仍然通过,只会让我的用户感到困惑。这就是我提出问题的原因。
  • 隐藏元素时,您始终可以切换disabled 属性。这样一来,这些值将不会与表单一起提交,但如果再次显示元素,它们将保留在 DOM 中。

标签: javascript jquery html validation show-hide


【解决方案1】:

hide() 函数只会隐藏元素(通过切换display 样式)。

如果你想阻止值被发送,也禁用输入。

$('input').prop('disabled', true).hide();

或重新激活它

$('input').prop('disabled', false).show();

【讨论】:

  • 这就是我想要的:)
【解决方案2】:

.hide() 和 .show() 方法不会影响输入元素的值

hide() 方法隐藏选定的元素。

提示:这类似于 CSS 属性 display:none。

注意:隐藏的元素根本不会显示(不再影响页面布局)。

Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多