我需要根据相应的复选框更新未知数量的文本框的值。
<input type="text" id="text0" />
<input type="checkbox" id="ckval1" class="checkvaloare" value="0" />
<input type="text" id="text1" class="ckval1" />
<br />
<div id="div"></div>
$("#text0").on("keyup change", function () {
qty = $(this).val();
if (qty === "") {
qty = 0;
}
if ($('#ckval1').is(":checked")) {
$(".ckval1").val(qty);
} else {
$(".ckval1").val(0);
}
});
$('#ckval1').click(function () {
if ($(this).is(":checked")) {
$(".ckval1").val(qty);
} else {
$(".ckval1").val(0);
}
});
我想拥有的是这样的:
每次#text0改变其值
对于每个具有 id = RANDOM_SOMETHING
的复选框
如果选中复选框
然后使用类 = RANDOM_SOMETHING的文本框获取#text0的值
else(如果没有选中文本框),带有类 = RANDOM_SOMETHING的文本框的值为0
如果选中复选框但没有相应的文本框,则我不需要该复选框。
有效的小提琴:http://jsfiddle.net/flish/ae629/11/
无法解决的问题是:http://jsfiddle.net/flish/ae629/12/
答案 0 :(得分:0)
不需要$(“#text0”)。on(“keyup change here”,function(){
ids = [];
$('.checkvaloare').each(function () {
ids.push(this.id);
});
$("#text0").on("keyup", function () {
qty = $(this).val();
if (qty === "") {
qty = 0;
}
if ($('#ckval1').is(":checked")) {
$(".ckval1").val(qty);
} else {
$(".ckval1").val(0);
}
});
$("checkbox").click(function () {
$.each(ids, function (index, value) {
if ($("checkbox").attr("id") === value) {
if ($('this').is(":checked")) {
if ($("text").attr("class") === value) {
$('this').val(qty);
} else {
$('this').val(0);
}
}
}
});
});
答案 1 :(得分:0)
像这样使用,
$("#text0").on("keyup change", function () {
update();
});
$("input[type=checkbox]").click(function () {
update();
});
function update() {
var value = $("#text0").val();
$("input[type=text]").not("#text0").each(function () {
if (($(this).prev().is(":checked"))) {
$(this).val(value);
}
else
{
$(this).val(0);
}
});
}