ESEMPIO:
codice:
<script>
Element.prototype.myFoo = function() {
console.log(this.form.name);
};
</script>
Allora.. Se chiamo il Prototype su this:
codice:
<form id="myform_1" name="myformname_1" method="POST" action="">
<input type="text" id="pippolo" name="pippoloname" value="PRIMO">
<div id="msg1" name="msgname1">MSG 1</div>
<button type="button" id="mybtn" name="mybtn" onclick="this.myFoo();">TEST 1</button>
</form>
Mi stampa "myformname_1" (cioè il name del form a cui appartiene il button)
Ma, se provo a chiamarlo su un elemento diverso da this:
codice:
<form id="myform_1" name="myformname_1" method="POST" action="">
<input type="text" id="pippolo" name="pippoloname" value="PRIMO">
<div id="msg1" name="msgname1">MSG 1</div>
<button type="button" id="mybtn" name="mybtn" onclick="document.getElementById('myform_1').myFoo();">TEST 1</button>
</form>
Ottengo:
codice:
Uncaught TypeError: Cannot read property 'name' of undefined
Perchè il prototype funziona solo con l'elemento this ??
Grazie a tutti!