js不能修改readonly的input的value吗?
时间: 2024-03-28 09:37:17 浏览: 12
是的,readonly属性表示只读,输入框的值无法修改,但是可以通过JavaScript来改变输入框的value属性。但是如果将输入框的disabled属性设置为true,则无法通过JavaScript来改变输入框的value属性。因为disabled属性表示该输入框不可用,无法获取焦点,所以在JavaScript中也无法修改其属性。
相关问题
jquery 监听readonly 的input value变化
如果 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`会检测到这个变化并且执行相应的处理逻辑。