12 Stimmen

Formular beim Klicken auf Radio-Button übermitteln - Formular übermitteln und andere Aktionen beim Klicken auf Radio ausführen

Ich habe eine jQuery-Frage zu Radio-Buttons und Formularen.

Ich habe Registerkarteninhalt mit 5 Registerkarten und einem Formular in jeder Registerkarte eingerichtet.

Jedes Formular besteht aus 5 Radio-Buttons und einem Submit-Button.

Ich habe meine jQuery so eingerichtet, dass zuerst überprüft wird, ob eine Auswahl getroffen wurde, dann das Formular mit AJAX übermittelt wird, die aktuelle Registerkarte schließt (slideUp) und die nächste Registerkarte öffnet (slideDown).

Was ich lieber tun würde, ist die Submit-Buttons zu entfernen und das Formular beim Klicken auf einen der Radio-Buttons zu übermitteln. So wird beim Klicken auf einen Radio-Button das Formular übermittelt, die aktuelle Registerkarte geschlossen und die nächste geöffnet.

Was muss ich tun, damit das Klicken auf einen der Radio-Buttons das Formular übermittelt und die Registerkarten schließt? Mein jQuery-Code ist unten aufgeführt.

$("#selfAss1").validate({
    invalidHandler: function(e, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = errors == 1
                ? 'Sie haben 1 Feld verpasst. Es wurde unten markiert.'
                : 'Sie haben ' + errors + ' Felder verpasst. Sie wurden unten markiert.';
            $("div.error span").html(message);
            $("div.error").show();
        } else {
            $("div.error").hide();
        }
    },
    onkeyup: false,
    submitHandler: function() {
            $.post('/_action.php', $("#selfAss1").serialize(), function(data) {
                    $('.pane1').slideUp('slow');
                    $('#result1').html(data);
                    $('.pane2').slideDown('slow');

            });
    },
    debug:true
});

36voto

Rory McCrossan Punkte 318758

Der Übergang von einer Folie zur nächsten wird von Ihrem submitHandler behandelt, also müssen alle Radio-Buttons lediglich das Formular bei einem Klick absenden. Mit diesem Wissen im Hinterkopf:

$('input[type=radio]').on('change', function() {
    $(this).closest("form").submit();
});

Ein paar Hinweise; erstens habe ich hier den Attribut-Selektor verwendet, den Sie möglicherweise gegen eine Klasse oder etwas spezifischeres für Ihre Bedürfnisse austauschen möchten. Zweitens möchten Sie vielleicht auch eine 'return'-Methode hinzufügen, um Personen zu ermöglichen, ihre Auswahl zu ändern. Mit dieser Methode ist es so, dass, wenn Sie einmal klicken, das war es.

12voto

Graeme Mehl Punkte 167

Dies hat bei mir funktioniert:

9voto

NullPoiиteя Punkte 54880

Versuchen

oder

in jQuery versuchen Sie etwas wie

$('input[type=radio]').click(function() {
    $("Formular id oder Klasse").submit();
});

0voto

Toki Punkte 325

Versuch es!!

 $('input[type=radio]').on('change', function() {
$('input[type=submit]').click();});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X