我希望每次單擊複選框時都會調用一個函數。但是,checkbox.click或checkbox.change似乎沒有觸發任何事件。我也嘗試過$(document).on(「click」,.....)等,但沒有任何效果。點擊後,我的複選框更改事件不起作用。我正在使用bootstrap和jquery
這是我的HTML代碼。
<div class="row">
<div class="col-sm-6 deliveryCheckbox">
<h4>Address for Delivery:</h4>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="form-element deliveryCheckbox">
<label class="form-control deliveryCheckbox" style="border: none;"><input type="checkbox" id="centreDelivery" name="centreDelivery" class="form-control" checked="checked">Collect from Centre</label>
</div>
</div>
</div>
<div class="row deliveryAddress">
<div class="col-sm-12">
<div class="form-element deliveryCheckbox">
<label class="form-control deliveryCheckbox" style="border: none;"><input type="checkbox" id="deliveryAddressSame" name="sameDeliveryAddress" class="form-control" checked="checked">Same as above Address</label>
</div>
</div>
</div>
<div class="row deliveryAddress">
<div class="form-element">
<label for="deliveryAddress">Delivery Address:</label>
<textarea class="form-control" rows="5" id="deliveryAddress" placeholder="Enter Delivery Address"></textarea>
</div>
</div>
這是我的jQuery代碼:
// Managing the delivery address.
function checkDeliveryAddress(){
if($('#centreDelivery').is(':checked')){
$(".deliveryAddress").css('display','none');
} else {
$(".deliveryAddress").css('display','block');
}
if($('#deliveryAddressSame').is(':checked')){
$("#deliveryAddress").text(
$("#first_name").val() + " " + $("#last_name").val() + ", " +
$("#address").val() + ", " + $("#city").val() + ": " +
$("#zip").val() + ", " + $("#state").find('option:selected').text() + ", " +
$("#country").find('option:selected').text() + "."
)
$("#deliveryAddress").attr("disabled", "disabled");
} else {
$("#deliveryAddress").removeAttr("disabled");
$("#deliveryAddress").text("");
$("#deliveryAddress").focus();
}
}
checkDeliveryAddress()
$(document).on("click", ".deliveryCheckbox", function() {
alert("Hey, something clicked.");
checkDeliveryAddress();
})
$(document).on("change", ":checkbox", function() {
alert("Hey, something clicked.");
checkDeliveryAddress();
})
$(document).on("change", "#deliveryAddressSame", function() {
alert("Hey, something clicked.");
checkDeliveryAddress();
})
我已經嘗試了所有的選擇把我的代碼工作,但事實並非如此。代碼在我點擊第一行時起作用。但是,當我點擊複選框或標籤時沒有任何反應。
看那plunkr [這裏](https://plnkr.co/edit/6tSCacArTqyZPCMG19H6?p=preview) ,你的代碼正在工作。 – BogdanC
嘗試將所有代碼包裝在'$(function(){...}'中。 –