我希望在选中并取消选中复选框时,输入的值会发生变化。
我有它工作,所以当选中一个框时,未选中框的值变为
“ATTPVAT2”,“ATTPTAX2”,“ATTPBHS2”
等。但是我不知道如何设置jquery所以当一个盒子被取消选中时它会移除2并变成
“ATTPVAT”,“ATTPTAX”,“ATTPBHS”
试。
该行
var core2Name = $(".ATT:not(:checked)").val() - "2";
返回NaN
function core2() {
var i = 0;
$('.ATT').each(function() {
if ($(this).is(':checked')) {
i += 1
}
});
$('.ATT').each(function() {
if ($(this).is(':not(:visible)')) {
i += 1
}
});
if (i < 0) {
var core2Name = $(".ATT:not(:checked)").val() - "2";
$(".ATT:not(:checked)").val(core2Name);
};
if (i == 1) {
$(".ATT:checked").prop('disabled', true);
var core2Name = $(".ATT:not(:checked)").val() + "2";
$(".ATT:not(:checked)").val(core2Name);
};
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" name="examlist" value="ATTPTAX" id="ATTPTAX1" class="ATT" onclick=" if(core2()){this.checked=false}; " />
<input type="checkbox" name="examlist" value="ATTPVAT" id="ATTPVAT2" class="ATT" onclick=" if(core2()){this.checked=false}; " />
<input type="checkbox" name="examlist" value="ATTPBHS" id="ATTPBHS3" class="ATT" onclick=" if(core2()){this.checked=false}; " />
答案 0 :(得分:1)
-
用于减去数字,它不适用于字符串。您得到NaN
因为"ATTPVAT2"
不是数字,所以用它来执行算术是没有意义的。
从字符串中删除字符的功能是String.prototype.replace
。它应该是:
var core2Name = $(".ATT:not(:checked)").val().replace('2', '');
答案 1 :(得分:-2)
您的codenipet格式不正确,请检查这是否可以帮助您:
function core2(chk) {
var isChecked = $(chk).is(':checked');
$("input[type=checkbox]").each(function(index, item) {
var name = $(item).attr("name");
var id = $(item).attr("name");
if (isChecked)
$(item).val(id);
else
$(item).val(name);
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type = "checkbox" name="examlist" value="ATTPTAX" id="ATTPTAX1" class="ATT" onclick =" core2(this)" />
<input type = "checkbox" name="examlist" value="ATTPVAT" id="ATTPVAT2" class="ATT" onclick =" core2(this)" />
<input type = "checkbox" name="examlist" value="ATTPBHS" id="ATTPBHS3" class="ATT" onclick =" core2(this)" />