首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$(this)[0].defaultValue的安全性/可靠性/跨浏览器兼容性

$(this)[0].defaultValue的安全性/可靠性/跨浏览器兼容性
EN

Stack Overflow用户
提问于 2011-03-09 18:32:56
回答 2查看 1.5K关注 0票数 7

我希望得到一些关于使用$(this).defaultValue来确定文本框值是否与原始值发生了变化的反馈。

代码语言:javascript
复制
//keyUp event

if($(this)[0].defaultValue != $(this).val())
{
   //Field has been modified mark as dirty
}

在Chrome中,它似乎可以生成所需的输出,因为defaultValue始终是将文本框加载到DOM时所使用的原始值。然而,我最近才在Chrome Dev工具中的DOM对象中搜索了一些完全不同的东西后才发现了这个值,我担心它可能会带来一大堆问题。此外,谷歌没有出现太多,这让我更担心……

任何反馈都非常感谢。

干杯抢劫犯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-09 18:39:42

看起来很安全。我只是使用了这个小提琴:http://jsfiddle.net/rXsrQ/并在chrome/Firefox3.6/Safari4/ ie8上测试了它,它们的行为都是一样的。

它在这里描述:https://developer.mozilla.org/en/DOM/HTMLTextAreaElement,没有关于兼容性问题的通知。

这里还描述了:http://msdn.microsoft.com/en-us/library/ms533718(v=vs.85).aspx和似乎兼容ie5和更高版本,所以我看不出为什么使用它不安全。

票数 9
EN

Stack Overflow用户

发布于 2011-03-09 18:40:25

.defaultValue是非标准的,因此在任何W3C草案/规范中都没有提到。如果您负责所呈现的HTML标记,那么HTML5 data-属性似乎是跨浏览器获得所需行为的一种非常方便的方法。

这样你就可以像这样呈现它

代码语言:javascript
复制
<input type="text" value="foo" data-default="foo" />

jQuery将获取这些data-属性,并将-后面的部分存储为该特定节点的data expand对象中的键。这意味着您可以通过调用

代码语言:javascript
复制
$('input').data('default') // === 'foo'

示例http://jsfiddle.net/zAuPf/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5244466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档