2009-06-16 4 views

Antwort

0

Wo möchten Sie die Steuerung anzeigen?

Zuerst entscheiden, wo Sie es wollen zeigen

dann entscheiden, was Sie steuern

Danach zeigen wollen: für

$("#myCheckboxId").click(function(){ /* show the control */}); 
2

Diese enge sein sollte, was Sie suchen:

 $('#myCheckbox').click(function() { 
      if($(this).is(':checked')) { 
       $('#myControl').show(); 
      } else { 
       $('#myControl').hide(); 
      } 
     }); 

Das zeigt das Element mit ID myControl Wenn das Kontrollkästchen aktiviert ist, wird es ausgeblendet, nachdem es deaktiviert wurde.

Wenn Sie verkürzte Ausdrücke wie die ternäre Operator (ich bin unhealthily besessen), könnte man dies in Betracht ziehen:

 $('#myCheckbox').click(function() { 
      $(this).is(':checked') ? $('#myControl').show() : $('#myControl').hide(); 
     }); 
+0

Ich finde, dass die Verwendung von "ändern" auf Kontrollkästchen macht böse Dinge passieren in IE. Schlechte Dinge wie die Funktion nicht feuern, wenn ich denke, es sollte – mkoryak

+0

Das ist richtig, änderte 'ändern' zu 'klicken Sie auf – karim79

+0

Ich brauche den Benutzer Steuerelement dynamisch aufrufen. – Greens

1

In bestimmten Situationen kann es vorteilhaft sein, anstatt ein bestehendes Formelement zeigt, , um die Elemente im laufenden Betrieb dem DOM hinzuzufügen. Dann können Sie eine jQuery live event binden, um ein solches Formular zu senden.

$(document).ready(function(){ 
    $("#myCheckbox").click(function(){ 
     $(this).html('<input class="newinput" id="thisinput" type="text" name="thisinput" value="" >'); 
     var update = $('<input name="submit" type="submit" class="update" value="update">'); 
     $(this).next().html(update); 
     return true; 
    }); 

    $(".update").live("click", function(){ 
    var thisinput = $("input#thisinput").val(); 
    var url = encodeURI('index.php?thisinput='+thisinput); 
    window.location = url; 
    return false; 
    }); 

}); 

In meinem obigen Beispiel habe ich .html() verwendet, um die Eingabeelemente einzufügen. Das überschreibt Ihre Checkbox. Möglicherweise möchten Sie eine andere DOM-Manipulation verwenden, z. B. append, next oder andere.

Es gibt viele verschiedene Möglichkeiten, das Formular unter Verwendung von ajax functions zu senden, und wenn die Elemente bereits vorhanden sind, aber versteckte Elemente sind, dann brauchen Sie nur show effect. Siehe hierzu tutorial on jQuery effects.

+0

Vielen Dank – Greens

+0

Wenn ich die Live-Funktion verwende, bekomme ich einen Fehler, der sagt "Objekt unterstützt diese Eigenschaft oder Methode nicht" – Greens

+0

Diese Funktion wurde in jQuery 1.3 hinzugefügt, stellen Sie sicher, dass Sie eine aktuelle Version haben. – jjclarkson

Verwandte Themen