2 Stimmen

jquery Frage für Ereignisse

Ich habe den Text von einem Textfeld zu einem anderen mit Checkbox durch Jquery kopieren Ich habe Jquery-Ereignis in meinem Code angewendet, es funktioniert teilweise richtig:

<html>
<head>
    <script src="js/jquery.js" ></script>
</head>
<body>
    <form>
        <input type="text" name="startdate" id="startdate" value=""/>
        <input type="text" name="enddate" id="enddate" value=""/>
        <input type="checkbox" name="checker" id="checker" />
    </form>
    <script>
    $(document).ready(function(){
            $("#startdate").change(function(o){
        if($("#checker").is(":checked")){
            $("#enddate").val($("#startdate").val());
        }

});
});
    </script>
</body>
</html>

Dieser Code funktioniert wie folgt, Ich habe immer das Kontrollkästchen standardmäßig aktiviert, wenn ich das Startdatum einfüge und dann die Tabulatortaste drücke, wird das Startdatum in das Enddatum kopiert.

Mein Problem

aber wenn ich jetzt das Kontrollkästchen deaktiviere und das Startdatum ändere und dann das Kontrollkästchen erneut aktiviere, wird das Startdatum nicht kopiert. Was sollte in dieser Situation getan werden?

2voto

Tatu Ulmanen Punkte 119424

Etwa so:

$(document).ready(function(){
    $("#startdate").change(function(o){
        if($("#checker").is(":checked")){
            $("#enddate").val($("#startdate").val());
        }
    });

    $("#checker").change(function() {
        if($(this).is(":checked")) {
            $("#enddate").val($("#startdate").val());
        }
    });
});

1voto

Matt Punkte 72534

Fügen Sie ein Ereignis für die checkbox auch:

$('#checker').bind('click', function () {
    if ($(this).attr('checked')) { 
       $("#enddate").val($("#startdate").val());
    };
});

Oder vielleicht nur si enddate hat keinen Wert:

$('#checker').bind('change', function () {
    var endDate = $('#enddate');

    if ($(this).attr('checked') && jQuery.trim(endDate.val()) === "") { 
       endDate.val($("#startdate").val());
    };
});

1voto

jAndy Punkte 223172

Können Sie einfach .bind() ein Klick-Ereignis für Ihr Kontrollkästchen.

$('#checker').click(function(){
   if($(this).is(':checked')){
      $("#enddate").val($("#startdate").val());
   }
});

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