我想了解这个JS函数: JS Fiddle Demo
我基本上是从一本我想要学习的书中得到的。这本书被称为“JavaScript:The Definitive Guide”(pg484)。但该功能不包括随之而来的html。我很感激,如果有人能帮助我编写能使这项工作的HTML,那么我可以更好地理解它是如何工作的。我通过上面的链接对此进行了尝试。
我真的不喜欢这本书。它发生了很多。我是新手,有没有人建议做什么,除了来这里尝试得到答案。
感谢任何帮助。
//Example 17-7. Using the propertychange event to detect text input
function forceToUpperCase(element) {
if (typeof element === "string") element = document.getElementById(element);
element.oninput = upcase;
element.onpropertychange = upcaseOnPropertyChange;
// Easy case: the handler for the input event
function upcase(event) { this.value = this.value.toUpperCase(); }
// Hard case: the handler for the propertychange event
function upcaseOnPropertyChange(event) {
var e = event || window.event;
// If the value property changed
if (e.propertyName === "value") {
// Remove onpropertychange handler to avoid recursion
this.onpropertychange = null;
// Change the value to all uppercase
this.value = this.value.toUpperCase();
// And restore the original propertychange handler
this.onpropertychange = upcaseOnPropertyChange;
}
}
}
答案 0 :(得分:0)
相关的HTML可能是:
<input type="text" id="i0">
<script>
window.onload = function() {
forceToUpperCase('i0')
}
</script>
但是,我不确定该函数正在做什么是有用的,或者所使用的监听器附件和分离方法是健壮的。但它可能有助于理解事件和听众的某些方面。
答案 1 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<script>
var element = document.getElementbyId(Java_C#);
function forceToUpperCase(element) {
if (typeof element === "string") element = document.getElementById(element);
element.oninput = upcase;
element.onpropertychange = upcaseOnPropertyChange;
// Easy case: the handler for the input event
function upcase(event) { this.value = this.value.toUpperCase(); }
// Hard case: the handler for the propertychange event
function upcaseOnPropertyChange(event) {
var e = event || window.event;
// If the value property changed
if (e.propertyName === "value") {
// Remove onpropertychange handler to avoid recursion
this.onpropertychange = null;
// Change the value to all uppercase
this.value = this.value.toUpperCase();
// And restore the original propertychange handler
this.onpropertychange = upcaseOnPropertyChange;
}
}
}
</script>
</head>
<body>
<p id="Java_C#">
Public static void main{}
</p>
</body>
</html>