【问题标题】:Why does jQuery insert value attribute in HTML, yet document.getElementById(...).value does not? Is there a workaround?为什么 jQuery 在 HTML 中插入 value 属性,而 document.getElementById(...).value 没有?有解决方法吗?
【发布时间】:2015-02-02 00:39:31
【问题描述】:

如果我在 JavaScript 中使用这一行,

$("#formfieldid").attr("value", "foobar");

它将 value 属性插入到 HTML 中,以便在查看源代码时显示。

如果我在 JavaScript 中使用这一行,

document.getElementById("formfieldid").value = "foobar";

该字段的值将是 foobar,但它不会显示在视图源下。

我想要做的是让属性不在视图源下显示并使用 jQuery。 jQuery中是否存在等价物?

【问题讨论】:

  • 如果你这样做是因为它没有显示在源代码中,请问为什么?
  • 非常感谢。那确实奏效了。我正在复制一个密码字段,我不希望普通的 joe 看到它。显然,熟悉 JS 的人不会有问题。但大部分原因与通过 PCI 合规性有关。

标签: javascript jquery html document


【解决方案1】:

使用.prop() 设置元素的属性而不是属性

$("#formfieldid").prop("value", "foobar");

如果 .prop() (v1.6+) 不可用,请使用 .val() 作为 value 属性的快捷方式。

    $("#formfieldid").val("foobar");

【讨论】:

    【解决方案2】:

    我想要做的是让属性不在视图源下显示并使用 jQuery。 jQuery中是否存在等价物?

    请改用val()val() 操作value 属性(类似于prop() 方法),而attr() 通过getAttribute()setAttribute() 操作属性。

    【讨论】:

      【解决方案3】:

      您没有指定您使用的是什么元素,但​​我认为这就是您要寻找的。

      jQuery val()

      【讨论】:

        【解决方案4】:

        试试这个:

        $("#formfieldid").val("foobar");
        

        【讨论】:

          猜你喜欢
          • 2013-12-15
          • 2012-02-21
          • 2014-07-14
          • 2023-01-05
          • 2014-11-07
          • 2011-10-09
          • 1970-01-01
          • 1970-01-01
          • 2022-06-22
          相关资源
          最近更新 更多