• 关于

    onpropertychange

    的搜索结果

问题

怎么在非IE下实现onpropertychange的功能(在js赋值给input时也可以生效)

a123456678 2019-12-01 20:21:52 987 浏览量 回答数 1

问题

js改变文本框的value,什么事件能捕获到文本框内容的改变

小旋风柴进 2019-12-01 19:37:28 644 浏览量 回答数 1

问题

html()赋值方法没有起作用

a123456678 2019-12-01 20:21:36 837 浏览量 回答数 1

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

回答

不推荐用keyup事件,因为它对非键盘操作的动作没反应,比如鼠标粘贴进来一个网址。这时候需要用onPropertyChange事件,能够对textarea内的属性值的变化产生动作。另外,正则部分推荐最后加一个空格判定,也就是URL+空格才解析为链接形式,如果是之前的匹配的话会造成死循环。

小旋风柴进 2019-12-02 02:19:14 0 浏览量 回答数 0

回答

oninput或onpropertychange事件中验证下密码符合哪项要就就设置提示信息容器的样式就行了 <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script> <input type="password" id="pwd" /> <div id="note1">包含大小写字符</div> <div id="note2">包含至少一个数字或者特殊符号</div> <div id="note3">长度至少8位</div> <script> function checkValue() { $('#note1').css('color', /[a-z]/.test(this.value) && /[A-Z]/.test(this.value) ? 'green' : 'black'); $('#note2').css('color', /[\d~!@#\$%^&\*\(\)_]/.test(this.value) ? 'green' : 'black'); $('#note3').css('color', this.value.length >= 8 ? 'green' : 'black'); } $('#pwd').bind({input:checkValue,propertychange:checkValue}) </script> -------------------------

小旋风柴进 2019-12-02 02:31:17 0 浏览量 回答数 0

回答

如果你想Map自动更新时id一个的OtherClass对象被修改,那么你需要编写的代码为你自己。 除非地图和对象紧密耦合,否则应保持逻辑分离,例如,通过实现属性更改跟踪。 我建议围绕PropertyChangeSupportJava Runtime Library中的类构建它。 其他类 首先,您需要启用属性更改跟踪。 我name在此答案的末尾添加了属性以改善测试代码的输出。 public final class OtherClass { private final transient PropertyChangeSupport pcs = new PropertyChangeSupport(this); private int id; private String name; public OtherClass(int id, String name) { this.id = id; this.name = name; } public void addPropertyChangeListener(PropertyChangeListener listener) { this.pcs.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { this.pcs.removePropertyChangeListener(listener); } public int getId() { return this.id; } public void setId(int id) { int oldId = this.id; this.id = id; this.pcs.firePropertyChange("id", oldId, id); } public String getName() { return this.name; } public void setName(String name) { String oldName = this.name; this.name = name; this.pcs.firePropertyChange("name", oldName, name); } @Override public String toString() { return "OtherClass[" + this.id + ", " + this.name + "]"; } } 接下来,您需要封装,Map以便可以正确处理属性更改侦听器。 为了防止内存泄漏,重要的是要clear()在OtherMap当不再需要它,否则,以一个单一的参考OtherMap对象,它是在OtherMap将保持在map和所有在map中的对象在内存活。为了解决这个问题,我创建了object AutoCloseable,以便可以将其与try-with-resources语句一起使用,并使代码分析器帮助强调需要关闭/清除Map。 final class OtherMap implements AutoCloseable { private final PropertyChangeListener listener = this::onPropertyChange; private Map<Integer, OtherClass> map = new HashMap<>(); public OtherMap() { } public Set<Integer> keys() { return Collections.unmodifiableSet(this.map.keySet()); } public Collection<OtherClass> values() { return Collections.unmodifiableCollection(this.map.values()); } public OtherClass get(int id) { return this.map.get(id); } public OtherClass add(OtherClass other) { OtherClass prev = this.map.put(other.getId(), other); if (prev != null) prev.removePropertyChangeListener(this.listener); other.addPropertyChangeListener(this.listener); return prev; } public OtherClass remove(int id) { OtherClass other = this.map.remove(id); if (other != null) other.removePropertyChangeListener(this.listener); return other; } public void clear() { this.map.values().forEach(other -> other.removePropertyChangeListener(this.listener)); this.map.clear(); } private void onPropertyChange(PropertyChangeEvent evt) { if (! "id".equals(evt.getPropertyName())) return; Integer oldId = (Integer) evt.getOldValue(); Integer newId = (Integer) evt.getNewValue(); if (oldId.equals(newId)) return; OtherClass other = (OtherClass) evt.getSource(); if (this.map.putIfAbsent(newId, other) != null) throw new IllegalStateException("Duplicate key"); if (! this.map.remove(oldId, other)) { this.map.remove(newId); throw new IllegalStateException(); } } @Override public String toString() { return this.map.toString(); } @Override public void close() { clear(); } } 测试 OtherClass eeny = new OtherClass(3, "Eeny"); OtherClass meeny = new OtherClass(5, "Meeny"); OtherClass miny = new OtherClass(7, "Miny"); OtherClass moe = new OtherClass(9, "Moe"); OtherMap otherMap = new OtherMap(); otherMap.add(eeny); otherMap.add(meeny); otherMap.add(miny); otherMap.add(moe); System.out.println("Before: " + otherMap); meeny.setId(2); otherMap.remove(miny.getId()); miny.setId(4); System.out.println("After: " + otherMap); 输出量 Before: {3=OtherClass[3, Eeny], 5=OtherClass[5, Meeny], 7=OtherClass[7, Miny], 9=OtherClass[9, Moe]} After: {2=OtherClass[2, Meeny], 3=OtherClass[3, Eeny], 9=OtherClass[9, Moe]} 回答来源:Stack Overflow

montos 2020-03-25 19:24:32 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站