0
如果複選框被單擊,則複選框的值必須爲1.如果沒有單擊複選框,則其值必須爲0.由於某種原因,以下代碼似乎無法正常工作。jquery複選框選中更改值
// 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'是沒有意義的。如果你想知道哪些複選框沒有被選中,使用'map()'創建每個複選框的checked狀態的布爾數組會更有意義 –