2016-05-08 2 views
0

Ich habe zu viele Formulare auf meiner einzigen Webseite mit unterschiedlichen Namen jedes Formulars. Jetzt habe ich eine Schaltfläche in jeder Form, die diese Form mit einem festen Parameter erhält und an eine JavaScript-Funktion weiterleitet. Aber in meinem Fall funktioniert es nicht und gibt mir den Fehler, dass Uncaught TypeError: Cannot read property 'name' of undefined oder `Uncaught ReferenceError: updateContact nicht definiert ist. Meine Skriptdatei wird vor diesen Formularen und auch nach diesen Formularen zur Überprüfung hinzugefügt. Sie können eine Live DEMO At JSFiddle mit diesem Fehler sehen.this.form gibt kein Formular in einer JavaScript-Funktion weiter

JavaScript:

<script type="text/JavaScript"> 
function updateContact(formName, id){ 
    var currentFormName = formName.name; 
    alert(currentFormName + " - " + id); 
} 
</script> 

HTML:

<form method="post" action="" name="updateAllContact0"> 
<a onClick="updateContact(this.form, 0)" >Update</a> 
</form> 
<form method="post" action="" name="updateAllContact1"> 
<a onClick="updateContact(this.form, 1)" >Update</a> 
</form> 
<form method="post" action="" name="updateAllContact2"> 
<a onClick="updateContact(this.form, 2)" >Update</a> 
</form> 
<form method="post" action="" name="updateAllContact3"> 
<a onClick="updateContact(this.form, 3)" >Update</a> 
</form> 
<form method="post" action="" name="updateAllContact4"> 
<a onClick="updateContact(this.form, 4)" >Update</a> 
</form> 
<form method="post" action="" name="updateAllContact5"> 
<a onClick="updateContact(this.form, 5)" >Update</a> 
</form> 
<!-- 
. 
// Too Many Forms Of Unknown Length 
. 
<form method="post" action="" name="updateAllContactN"> 
<a onClick="updateContact(this.form, N)" >Update</a> 
</form> 
--> 

jETzT was ist das Problem, das ich in meinem Code haben ... ???

Antwort

1

Ersetzen Sie this.parentElement.form für this.form. <a> Element hat keinen form untergeordneten Knoten. <form> ist .parentElement von <a> Element.

+0

Noch haben 'Uncaught TypeError: Kann nicht lesen Eigenschaft 'Name' von undefined' Fehler ... –

+0

@MuhammadHassan Siehe jsfiddle https://jsfiddle.net/uamvn58z/. Die Verwendung von '.parentElement' für' .form' sollte die erwarteten Ergebnisse liefern. _ "Immer noch Uncaught TypeError: Kann die Eigenschaft 'name' von undefined nicht lesen" _ Kannst du jsfiddle http://jsfiddle.net zum Demonstrieren erstellen? – guest271314

+1

Danke, Meine Anforderung ist erfüllt ... –

0

ein Problem ist, dass Sie brauchen, um die Onclick nicht Camelcase - es

<a `...onclick="updateContact(this.form, 0)" >Update</a>...` 

zweitens sein sollte - das ist sehr unordentlich - Sie sollten in der Lage sein, es zu bereinigen und einen Onclick-Ereignishandler in der zuweisen js eher als in der HTML

+0

Immer noch die 'Uncaught TypeError: Kann die Eigenschaft 'Name' von undefined' Fehler nach der Verwendung von ** onclick ** nicht lesen. –

Verwandte Themen