2017-07-22 4 views
0

Ich habe eine Tabelle mit einer Checkbox-Spalte - wenn Sie auf das Kontrollkästchen klicken, führt es ein Skript, das eine AJAX-Anfrage enthält. Ich versuche, den überprüften Zustand in eine Variable zu setzen, also kann ich das als einen Parameter in der AJAX POST-Anfrage einschließen, aber ich kann es bis jetzt in eine Variable nicht erhalten.Übergeben Kontrollkästchen aktiviert Wert zu Skriptvariable

Hier ist mein Checkbox Eingabefeld mit dem Skript, das nur vereinfacht wird, um den Aktivierungszustand des Eingangs in dem checkedState Variable zu erfassen:

$(document).ready(function() { 
 
    $("input.select-item").click(function() { 
 
    var productID = $(this).val(); 
 
    var checkedState = $("input.select-item").attr("checked"); 
 
    console.log(checkedState); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 

 
<td id="AT36288"><input type="checkbox" class="select-item checkbox" name="select-item" value="AT36288" /></td>

Also, wenn das Kontrollkästchen nicht geprüft und Der Benutzer überprüft dies, ich möchte den Wert von "überprüft" in der Variablen erfassen, und wenn das Kontrollkästchen aktiviert war und der Benutzer deaktiviert ist, möchte ich den Wert von "deaktivieren" in der Variablen erfassen. Ich erhalte ein undefined Ergebnis für die Variable in der Konsole.

+0

Ich habe nur das Kontrollkästchen im Snippet gesetzt und den DOM ready-Handler geschlossen, und es scheint zu funktionieren. – adeneo

+0

Sie müssen besser 'var checkedState = $ (" input.select-item ") verwenden. Prop (" checked ");' oder 'var checkedState = $ (" input.select-item "). Is (": checked ");'. Und wenn Sie die Zeichenfolgen aktivieren/deaktivieren möchten, können Sie Folgendes verwenden: 'var checkedState = $ (" input.select-item "). Is (": checked ")? "checked": "uncheck"; 'ABER das Boolean stattdessen zu übergeben (' true or false') scheint echt zu sein –

Antwort

1

1. Platz: Sie verwenden müssen geprüft $(this).is(":checked")

2.: Sie brauchen $(this) statt $("input.select-item").attr("checked") verwenden, da Sie das currently clicked Element anstelle von class name$("input.select-item") verweisen müssen.

$(document).ready(function() { 
 
    $("input.select-item").click(function() { 
 
    var productID = $(this).val(); 
 
    var checkedState = $(this).is(":checked"); 
 
    console.log(checkedState); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 

 
<td id="AT36288"><input type="checkbox" class="select-item checkbox" name="select-item" value="AT36288" /></td>

0

Hallo können die Kontrollkästchen und radioboxes Ereignisse durch Änderungsereignis verfolgt besser werden. In jQuery können Sie den Status des Eingabefeldes überprüfen: $ ("input.select-item"). Is (": checked") oder einfach $ (". Select-item"). Is (" : checked ") Hoffe das hilft.

Verwandte Themen