【发布时间】:2017-08-12 14:11:23
【问题描述】:
我希望每次单击复选框时都调用一个函数。但是, checkbox.click 或 checkbox.change 似乎没有触发任何事件。我也尝试过 $(document).on("click",.....) 等,但没有任何效果。
这是我的 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 here,你的代码正在运行。
-
尝试将所有代码包装在
$(function() {... }中。
标签: javascript jquery html twitter-bootstrap checkbox