当用户输入邮政编码并检查useAbove时,邮政编码中会填充邮政编码。如果取消选中useAbove,则清除邮件邮政编码。 现在我收到一个错误,如果用户输入邮政编码,邮件邮政编码就会填充,即使
($("#useAbove").attr("checked") == false
不应该打
$('#txtPostcode').keyup(function (event)
有没有办法可以检查($("#useAbove").attr("checked") = false
和$('#txtPostcode').keyup(function (event))
是否同时被解雇?
由于
$(document).ready(function () {
$("#useAbove").click(function () {
//If checkbox checked
if ($(this).attr("checked") == true) {
var Postcode = $('#txtPostcode').val();
var Address = $('#txtAddress').val();
$('#txtMailingPostcode').val(Postcode);
$('#txtAddress1').val(Address);
//Change mailing postcode when text changed
$('#txtPostcode').keyup(function (event) {
$('#txtMailingPostcode').val($('#txtPostcode').val());
});
} else {
$("#txtMailingPostcode").val("");
}
});
});
HTML
<table id="Table" border="1">
<tr>
<td>txtAddress</td>
<td>
<input id="txtAddress" type="text" />
</td>
</tr>
<tr>
<td>Postcode</td>
<td>
<input id="txtPostcode" type="text" />
</td>
</tr>
<tr>
<td><input type="checkbox" name="useAbove" id="useAbove"/></td>
<td>Use address above</td>
</tr>
<tr>
<td>Address</td>
<td>
<input id="txtAddress1" type="text" />
</td>
</tr>
<tr>
<td>Mailing Postcode</td>
<td>
<input id="txtMailingPostcode" type="text" value="" />
</td>
</tr>
</table>
</form>
这是我在将其放入主mvc应用程序之前使用的一个小程序。
答案 0 :(得分:2)
if ($(this).attr("checked") == true) {
我认为问题在于这一行。替换为
if ($(this).attr("checked")) {
在布尔意义上,选择器不等于true
,但它返回“truthy”值。
答案 1 :(得分:0)
尝试使用.is(':checked')
或将值设置为<input type="checkbox" name="useAbove" id="useAbove"/>
并使用$(this).val() == 'YOUVALUEHERE'