it-swarm.com.de

Werden Formulardaten noch übertragen, wenn das Eingabe-Tag keinen Namen hat?

Aus Effizienzgründen frage ich mich, ob eine Datei oder ein Text in einem Textbereich noch auf den Server übertragen wird, wenn Sie das Namensattribut weglassen oder auf null setzen. z.B

<input type="file" id="file" name="">
<textarea id="text" name="">

Ich stelle fest, dass die Daten auf dem Server nicht verfügbar sind, wenn Sie dies tun.

47
Jamie Kitson

Wenn ich es richtig verstehe, schreibt die W3C-Spezifikation vor, dass für jedes Formeleingangselement ein name-Attribut angegeben ist. Andernfalls wird dieses Element nicht verarbeitet. Quelle

56
Petter

Nein. 

Ich habe dies in allen Browsern überprüft - die Felder mit leerem/fehlendem Namen fehlen in der POST/GET-Anforderung vom Browser. Es ist egal, ob sie eine ID haben oder nicht (mein Gedanke war, dass Browser ID als Namen verwenden könnten, aber keine).

27
DenisS

es funktioniert nicht direkt, aber Sie können sie über AJAX -Aufrufe in JavaScript zuweisen. Idk weiß wirklich, ob es wirklich eine Anwendung in der realen Welt gibt (eine Verschleierung der Parameter, die der Server erwartet).

mit 

<form id="login" method="post" action="someurl">
 <input id="username" type="text" /> 
 <input id="password" type="password" />
 <input type="submit" value="login" />
</form>

JS zu verarbeiten wäre (Verwendung von jQuery zur Verarbeitung von Ajax)

$("#login").on("submit",function(ev){
  $.post("someurl",{
    usrn: $("#username").val,
    pwd: $("#password").val       
  },function(ev){
          //this is the callback function that runs when the call is completed successfully
  });
}
/*second argument on $.post is and object with data to send in a post request 
usrn would be the name of the parameter recived in the server 
same for pwd "#username" and  "#password" are the id's html attribute for the field
'.val' is the jquery object's attribute in which jquery access the value in the text box
"$()" or it's equivalent "jQuery()" works like an object constructor that fills 
the attributes with the
DOM data that cover the css selector that this function expects as a parameter*/

hINWEIS Der Code ist möglicherweise nicht vollständig korrekt, da ich ihn nicht getestet habe, aber die Logik dahinter sollte selbsterklärend sein

0
Dan Espinoza