12 Stimmen

Formular bei Klick auf Optionsfeld senden - Formular senden und andere Aktionen bei Klick auf Optionsfeld ausführen

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

Ich habe Registerkarteninhalt mit 5 Registerkarten eingerichtet, wobei in jeder Registerkarte ein Formular eingerichtet ist.

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

Mein jQuery ist so eingerichtet, dass es zunächst validiert, ob eine Auswahl getroffen wurde, dann das Formular mit AJAX sendet, die aktuelle Registerkarte schließt (slideUp) und die nächste Registerkarte öffnet (slideDown).

Was ich lieber tun würde, ist die Senden-Buttons zu entfernen und das Formular beim Klick auf einen der Radiobuttons zu senden. So würde das Klicken auf einen Radiobutton das Formular senden, die aktuelle Registerkarte schließen und die nächste öffnen.

Was muss ich tun, damit das Klicken auf einen der Radio-Buttons das Formular sendet 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 vergessen. Es wurde unten hervorgehoben'
                : 'Sie haben ' + errors + ' Felder vergessen. Sie wurden unten hervorgehoben';
            $("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, daher müssen alle Optionsfelder einfach das Formular beim Klicken übermitteln. Beachten Sie das:

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

Ein paar Anmerkungen; erstens habe ich hier den Attributselektor verwendet, den Sie möglicherweise durch eine Klasse oder etwas Spezifischeres für Ihre Bedürfnisse ändern möchten. Zweitens möchten Sie möglicherweise auch eine 'return'-Methode einfügen, um es den Benutzern zu ermöglichen, ihre Auswahl zu ändern. Mit dieser Methode ist es, wenn Sie einmal klicken, so.

12voto

Graeme Mehl Punkte 167

Dies hat bei mir funktioniert:

9voto

NullPoiиteя Punkte 54880

Versuche

oder

in jquery versuche etwas wie

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

0voto

Toki Punkte 325

Versuche dies!!

 $('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