2013-07-17 2 views
-2

Я пытаюсь понять это JS функции: JS Fiddle DemoDetect ввод текста

я в основном получил его из книги, которую я пытаюсь учиться. Книга называется «JavaScript: окончательное руководство» (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; 
    } 
    } 
} 
+1

Пожалуйста, найдите время для отступов кода. Никто не хочет читать этот беспорядок. Если вы хотите нашей помощи, по крайней мере, сделайте ее максимально приятной для нас. – meagar

+0

попробуйте http://jsfiddle.net/arunpjohny/vP9kD/1/ или http://jsfiddle.net/arunpjohny/vP9kD/2/ –

+0

Tks Arun, это было полезно для меня. – HattrickNZ

ответ

0

Связанные HTML может быть:

<input type="text" id="i0"> 

<script> 
    window.onload = function() { 
    forceToUpperCase('i0') 
    } 
</script> 

Однако, я не уверен, что эта функция делает это полезно или что прикрепление слушателя и отслойка методы являются надежными. Но это может быть полезно для понимания определенных аспектов событий и слушателей.

+0

hi RobG, tks для этого, но не полностью понимаю, что вы делаете. – HattrickNZ

+0

Ответ добавляет элемент на страницу с идентификатором * i0 *, затем вызывает функцию * forceToUpperCase *, когда страница закончила загрузку. Функция добавляет слушателей к событиям * input * и * propertychange * для элемента. – RobG

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> 
+0

tks, но надеялся получить рабочий пример, с которым я мог бы взаимодействовать и видеть работу, как это делал Арун. – HattrickNZ

+0

было решено @HattrickNZ – KING

Смежные вопросы