2012-09-22 6 views

Antwort

47

Die W3C-Spezifikation, wenn ich es richtig verstehe, verlangt, dass jedes Formulareingabeelement ein Attribut name hat. Andernfalls wird dieses Element nicht verarbeitet. Source

+18

Genauer gesagt, nur Felder ("Steuerelemente"), die ein 'name' Attribut haben, tragen zum Formulardatensatz bei . Ohne ein solches Attribut wird das Feld weiterhin normal verarbeitet und das Formular kann ohne Daten aus diesem Feld übergeben werden. Es ist kein Fehler, ein Feld ohne Attribut 'name' zu haben. –

+1

Kann jemand den genauen HTML5 zitieren? –

24

Nr

Ich habe dies in allen Browsern - die Felder mit leeren/fehlenden Namen sind in POST/GET-Anforderung von Browser fehlt. Es spielt keine Rolle, ob sie ID haben oder nicht (ich dachte, dass Browser ID für Namen verwenden könnten, aber nicht).

0

es nicht direkt funktioniert, aber man kann sich zuordnen durch AJAX in JavaScript-Aufrufen, weiß IDK wirklich, ob dies wirklich jede Anwendung in der realen Welt hat (eine die Verschleierung der Parameter sein könnte, dass 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 (jQuery mit ajax verarbeiten)

$("#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*/ 

NO Bitte TE-Code ist möglicherweise nicht vollständig korrekt, da ich es nicht getestet habe, aber die Logik dahinter sollte selbsterklärend sein