【问题标题】:Making input tag display value and actual value(stored in value attribute) different?使输入标签显示值和实际值(存储在值属性中)不同?
【发布时间】:2019-03-14 10:34:57
【问题描述】:

对于某些功能,我希望我的实际值和显示值不同。有没有办法通过JS来做到这一点?

一种方法是采用另一个具有相同名称/ID但隐藏的输入标签。

【问题讨论】:

标签: javascript html


【解决方案1】:

你可以在你的 UI 控件中有一个自定义属性假设你在谈论输入标签,那么它是这样的:

<input type='text' id='txt' value='Display Value' data-custattr='Actual Value' />

在读取值时,您可以获得实际值,例如:

document.getElementById('txt').getAttribute('data-custattr')

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    编辑: 我可能会这样做的方式是在提交之前附加一些javascript,如果需要促进属性状态,则在输入中附加一个事件侦听器,就像如果你希望属性是自定义的,而不是'值'你需要一个事件“更改”上的侦听器,这将使您的自定义属性保持更新。

    类似的东西:

        element.addEventListener('change', () => {
        element.setAttribute('myAttrName', element.value);
    });
    

    这里的重点是不需要额外的元素,只需要几行js。

    【讨论】:

    • myAttrName 不会做任何事情。提交表单时,仍将发送该值。反正没有onchange事件,事件名称是change
    • 您是否建议在提交表单之前不能执行 javascript? :D
    • 如果您建议 OP 应该这样做,那么您的答案将丢失一半。
    • 很公平,我对事件名称也很不满意,感谢您指出这一点。
    猜你喜欢
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2021-08-05
    相关资源
    最近更新 更多