Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该使用HTML属性或类来指定输入字段的状态吗?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 我应该使用HTML属性或类来指定输入字段的状态吗?

Javascript 我应该使用HTML属性或类来指定输入字段的状态吗?,javascript,jquery,html,Javascript,Jquery,Html,我的问题比这要复杂一些,但本质上,当用户更改页面上的某些内容时,我希望以某种方式将该字段标记为“脏”,并使用确认框确保用户确实希望在丢失更改之前离开页面 在这种情况下,我不能使用全局“something changed”变量,因为需要根据发生的其他事件在某些项目上添加/删除它 本主题中问题的答案应考虑多种因素: 一般最佳实践——如果这种东西存在的话 查找速度-我在许多地方看到类名更快 浏览器兼容性-请不要使用超级花哨的HTML5/CSS3功能。我需要这个解决方案在IE7+、Firefox、Ch

我的问题比这要复杂一些,但本质上,当用户更改页面上的某些内容时,我希望以某种方式将该字段标记为“脏”,并使用确认框确保用户确实希望在丢失更改之前离开页面

在这种情况下,我不能使用全局“something changed”变量,因为需要根据发生的其他事件在某些项目上添加/删除它

本主题中问题的答案应考虑多种因素:

  • 一般最佳实践——如果这种东西存在的话
  • 查找速度-我在许多地方看到类名更快
  • 浏览器兼容性-请不要使用超级花哨的HTML5/CSS3功能。我需要这个解决方案在IE7+、Firefox、Chrome和Safari中工作。不太担心非IE浏览器上的版本
基本上,我有一些jQuery代码如下所示:

$(":input").on("change", function(event) {
  // set something on $(this) to hold state for this item
  // $(this).addClass("my-dirty-flag");
  // or
  // this.setAttribute("data-dirty-flag", "data-dirty-flag");
});
哪个选项“更好”,为什么


有一件事让我甚至想问一下,AngularJS似乎使用标签上的属性来做这类事情。

< P>我会用类来实现这一目的,因为你可以用原生JS代码查找它们。查找data-*属性是一项非常繁重的操作,因为JavaScript必须循环遍历所有元素属性。你可以查看其他帖子来支持我,如下所示:


我会让类来设置状态如果你不想自己写,你可以利用这个插件,我必须为此编写自己的代码。谢谢你的努力!为什么不设置一个变量呢?查找速度将不会是明显的是正常大小的形式。过早优化?看起来有点像,不是吗P但不是,这是针对大型应用程序的,代码将在每个页面上运行。