2010-11-07 17 views
5

Ich möchte nur bestimmte Formularfelder einschließen, wenn Sie ein Formular mit jQuery senden. Zum Beispiel würde Ich mag alle Felder ignorieren, die das disabled Attribut haben ... vielleicht so etwas wie folgt aus:Ignorieren Eingabefelder auf Formular senden mit jQuery

$('#my_button').click(function() { 
    if($('input').hasAttr('disabled') { 
     //ignore this form field when submitting 
    } 
    $('form').submit(); 
}); 

Irgendwelche Ideen?

Antwort

14

Das ist nicht notwendig, disabled Eingänge sind ausgeschlossen bereits. Die verschiedenen Methoden jQuery, einschließlich submit() und serialize() für Behinderte Kontrollen in Webformularen die HTML-4-Spezifikation eingehalten hat, geht wie folgt vor:

Eine erfolgreiche Kontrolle „gültig“ ist für die Einreichung. Bei jedem erfolgreichen Steuerelement wird der Name seines Steuerelements mit dem aktuellen Wert als Teil des übergebenen Formulardatensatzes gepaart. Ein erfolgreiches Steuerelement muss in einem FORM-Element definiert sein und muss einen Steuerelementnamen haben.

jedoch:

  • Steuerelemente, die disabled sind nicht erfolgreich sein können.

http://www.w3.org/TR/html401/interact/forms.html#successful-controls

+1

+1 - Für diejenigen neugierig, jQuery [führt den gleichen Filter, wenn es serialisiert] (https://github.com/jquery/jquery/blob/master/src/ajax. js # L97). –

+0

Ich war gerade dabei, das zu posten, ich denke, dass es sowieso standardmäßig ignorieren wird. – Matt

+0

Aber ein disabled-Attribut kann mit Javascript auf false gesetzt werden. In diesem Fall werden sie ebenfalls eingereicht, vielleicht ist es das Verhalten, das ThePixelProdigy ändern möchte. –