jquery 监听readonly 的input value变化
时间: 2023-08-08 11:09:12 浏览: 47
如果 input 元素的 `readonly` 属性为 `true`,则不能直接修改其 value 值,但可以通过其他方式来改变它,例如通过 JavaScript 或 jQuery 来修改其 value 值。因此,我们可以使用 `setInterval()` 方法来定时检测 input 元素的 value 值是否有变化。
例如,使用 `setInterval()` 方法:
```javascript
var previousValue = $('input[readonly]').val();
setInterval(function() {
var currentValue = $('input[readonly]').val();
if(currentValue !== previousValue) {
console.log('input的value值变化了');
previousValue = currentValue;
}
}, 100); // 每100毫秒检测一次
```
这里使用了一个变量 `previousValue` 来存储上一次检测到的 value 值,然后使用 `setInterval()` 方法每隔一定时间检测一次 value 值是否有变化,如果变化了就触发相应的回调函数。
相关问题
jquery 如何监听 readonly的input value变化
如果要监听`readonly`的`input`的`value`变化,可以使用`MutationObserver`,它可以监听DOM树的变化并作出相应的反应。代码如下:
```javascript
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'attributes' && mutation.attributeName === 'value') {
// value属性值发生改变
// 处理逻辑
}
});
});
var target = $('input')[0];
var config = { attributes: true };
observer.observe(target, config);
```
在上面的代码中,我们创建了一个`MutationObserver`对象,并且使用`observe`方法监听了`input`元素的变化。当`input`元素的`value`属性发生改变时,`MutationObserver`会检测到这个变化并且执行相应的处理逻辑。
jquery 如何监听 readonly的input变化
jquery可以通过`prop`方法获取和设置input的属性值,包括readonly属性。要监听readonly的input变化,可以使用`setInterval`方法在一定时间间隔内检查readonly属性的值是否改变,代码如下:
```javascript
var oldValue = $('input').prop('readonly');
setInterval(function() {
var newValue = $('input').prop('readonly');
if (oldValue !== newValue) {
// readonly属性值发生改变
oldValue = newValue;
// 处理逻辑
}
}, 100);
```
在上面的代码中,我们初始化了一个变量`oldValue`,通过`prop`方法获取`input`元素的`readonly`属性值。然后我们使用`setInterval`方法,在每100毫秒内检查`input`元素的`readonly`属性值是否发生了改变,如果发生改变则执行相应的处理逻辑。