2017-06-30 5 views
0

Wenn das Kontrollkästchen angeklickt wird, muss der Wert des Kontrollkästchens 1 sein. Wenn das Kontrollkästchen nicht angeklickt wird, muss der Wert 0 sein. Aus irgendeinem Grund scheint der Code nicht gut zu funktionieren.jquery checkbox checked change Wert

// Checkbox values 1/0. 
 
$("#prefForm").submit(function() { 
 
    $("input[type=checkbox]").each(function() { 
 
    var self = $(this); 
 
    if (self.is(":checked")) { 
 
     self.val('1'); 
 
    } else { 
 
     self.val('0'); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="select-activity"> 
 
    <ul> 
 
    <li> 
 
     <!-- <input type="hidden" name="donate_buskie" value=""> --> 
 
     <input type='checkbox' id='checkbox-1' class='pseudo-checkbox sr-only' name="donate_buskie" value="0" /> 
 
     <label for='checkbox-1' class='glyphicon-check-click fancy-checkbox-label'><span><?php echo JText::_('When someone donates to my Buskie'); ?></span> 
 
</label> 
 
    </li> 
 
    <li> 
 
     <!-- <input type="hidden" name="receives_donation" value=""> --> 
 
     <input type='checkbox' id='checkbox-2' class='pseudo-checkbox sr-only' name="receives_donation" value="0" /> 
 
     <label for='checkbox-2' class='glyphicon-check-click fancy-checkbox-label'><span><?php echo JText::_('When someone receives a donation'); ?></span> 
 
</label> 
 
    </li> 
 
    <li> 
 
     <input type='checkbox' id='checkbox-3' class='pseudo-checkbox sr-only' name="comment_buskie" value="0" /> 
 
     <label for='checkbox-3' class='glyphicon-check-click fancy-checkbox-label'><span><?php echo JText::_('When someone posts a comment on your Buskie'); ?></span> 
 
</label> 
 
    </li> 
 
    <li> 
 
     <input type='checkbox' id='checkbox-4' class='pseudo-checkbox sr-only' name="comment_reply" value="0" /> 
 
     <label for='checkbox-4' class='glyphicon-check-click fancy-checkbox-label'><span><?php echo JText::_('When someone replies to my comment'); ?></span> 
 
</label> 
 
    </li> 
 
    </ul>

+0

Sie Code-Schnipsel funktioniert gut! –

+0

Was ist der Sinn dieses Codes? Es widerspricht dem Standardmuster für die Arbeit mit Kontrollkästchen, wenn das Kontrollkästchen nicht aktiviert ist, wird kein Wert in der Anfrage gesendet. Daher ist der Wert "0", wenn es nicht markiert ist. Wenn Sie wissen möchten, welche Kontrollkästchen aktiviert sind, ist es viel sinnvoller, 'map()' zu verwenden, um ein boolesches Array des aktivierten Status jedes Kontrollkästchens zu erstellen –

Antwort

1

Es besteht keine Notwendigkeit jQuery verwenden 1/0 Werte für eine Checkbox zuweisen, basierend auf, ob es oder nicht aktiviert ist. Das Kontrollkästchen enthält bereits einen booleschen Wert. Wenn Sie Notwendigkeit Einsen und Nullen, können Sie einfach verwenden

var number_value = self.val() ? 1 : 0; 
Verwandte Themen