我没有规定不调用尝试使用以下方法设置字段值的JS:
getElementById(field_name).value = 'someValue'
因此,作为替代方案,我试图查看是否有拦截/覆盖JS的方法来设置html中字段的值,并在满足某些条件时尝试限制它
如果有可能请告诉我?
答案 0 :(得分:1)
我担心你不能这样做,所以如果你真的无法更改代码设置,那么你就会坚持使用非常丑陋的选项进行轮询和观看为了改变。例如,有点像这样的东西:
function polledInterceptor(id, callback) {
var element = document.getElementById(id);
var value = element.value;
var timer = setInterval(function() {
if (value !== element.value) {
value = callback(element, value);
if (value !== null) {
element.value = value;
}
}
}, 30); // 30 = 30ms
return {
stop: function() {
clearTimeout(timer);
}
};
}
...然后像这样使用它:
var poller = polledInterceptor("field_name", function(element, oldValue) {
var newValue = element.value;
// ...decide what to do...
return "someValue"; // or return null to leave the value unchanged
});
准备停止时:
poller.stop();