我想用Jquery实现以下功能
我尝试了以下代码,但它无效
<input type="checkbox" id="ckval1" class="checkvaloare" /> Trip 1
<input type="text" id="text1" class="ckval1" size="2" />
<br />
<input type="checkbox" id="ckval2" class="checkvaloare" /> Trip 2
<input type="text" id="text2" class="ckval2" size="2" />
JQuery如下:
$("input[type=checkbox]").click(function () {
update();
});
function update() {
$("input[type=text]").each(function () {
if (($(this).is(":checked"))) {
$(this).val(1);
}
else
{
$(this).val(0);
}
});
}
答案 0 :(得分:2)
使用.next()
获取下一个兄弟元素,.prev()
获取上一个兄弟元素。
试
$(function () {
$("input[type=checkbox]").on('click', function () {
$(this).next().val($(this).is(':checked') ? '1' : '0');
});
$("input[type=text]").on('keyup', function () {
if (+ $(this).val()) {
alert('f');
$(this).prev().prop('checked', true);
} else {
$(this).prev().prop('checked', false);
}
});
});
答案 1 :(得分:-1)
两个问题:
尝试这样的事情:
$("input[type=checkbox]").change(function (e) {
update(e.target);
});
function update(el) {
$("input[type=text]").each(function () {
if (($(el).is(":checked"))) {
$(this).val(1);
}
else
{
$(this).val(0);
}
});
}