我希望得到一些关于使用$(this).defaultValue来确定文本框值是否与原始值发生了变化的反馈。
//keyUp event
if($(this)[0].defaultValue != $(this).val())
{
//Field has been modified mark as dirty
}在Chrome中,它似乎可以生成所需的输出,因为defaultValue始终是将文本框加载到DOM时所使用的原始值。然而,我最近才在Chrome Dev工具中的DOM对象中搜索了一些完全不同的东西后才发现了这个值,我担心它可能会带来一大堆问题。此外,谷歌没有出现太多,这让我更担心……
任何反馈都非常感谢。
干杯抢劫犯
发布于 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和更高版本,所以我看不出为什么使用它不安全。
发布于 2011-03-09 18:40:25
.defaultValue是非标准的,因此在任何W3C草案/规范中都没有提到。如果您负责所呈现的HTML标记,那么HTML5 data-属性似乎是跨浏览器获得所需行为的一种非常方便的方法。
这样你就可以像这样呈现它
<input type="text" value="foo" data-default="foo" />jQuery将获取这些data-属性,并将-后面的部分存储为该特定节点的data expand对象中的键。这意味着您可以通过调用
$('input').data('default') // === 'foo'示例:http://jsfiddle.net/zAuPf/
https://stackoverflow.com/questions/5244466
复制相似问题