Вы используете один и тот же id
дважды.Предполагается, что id
уникален.
Здесь я изменил его на класс, и теперь он работает просто отлично
$(function() {
$(".chkMessage").click(function() {
if ($(this).is(":checked")) {
$("#dvMessage").show();
$("#AddMessage").hide();
} else {
$("#dvMessage").hide();
$("#AddMessage").show();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="chkMessage" />Do you have Passport?
<input type="checkbox" class="chkMessage" />Do you have Passport?
<div id="dvMessage" style="display: none">
Passport Number:
<input type="text" />
</div>
Кроме того, если вы хотите убедиться, что кнопка отображается, когда установлен какой-либо флажок, вы можете сделать что-то вроде этого
$(function() {
$(".chkMessage").click(function() {
$("#dvMessage").hide();
$("#AddMessage").show();
$(".chkMessage").each(function() {
if ($(this).is(":checked")) {
$("#dvMessage").show();
$("#AddMessage").hide();
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="chkMessage" />Do you have Passport?
<input type="checkbox" class="chkMessage" />Do you have Passport?
<div id="dvMessage" style="display: none">
Passport Number:
<input type="text" />
</div>
Если вы случайно не можете управлять отображаемым HTML, вы можете использовать селектор атрибутов [attribute="value"]
, чтобы захватывать элементы с одинаковыми id
$(function() {
$("[id='chkMessage']").click(function() {
$("#dvMessage").hide();
$("#AddMessage").show();
$("[id='chkMessage']").each(function() {
if ($(this).is(":checked")) {
$("#dvMessage").show();
$("#AddMessage").hide();
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="chkMessage" />Do you have Passport?
<input type="checkbox" id="chkMessage" />Do you have Passport?
<div id="dvMessage" style="display: none">
Passport Number:
<input type="text" />
</div>