根据复选框选择 jQuery 更新文本框
update text box based on checkbox selection jquery
我想用Jquery实现以下目标
- 有多个行程,每个行程都有复选框和文本框。
- 每当选中复选框时,文本框中与该复选框对应的值必须更新为"1"。
-
每当客户输入文本框时,应选中复选框
<input type="checkbox" id="ckval1" class="checkvaloare" />Trip 1 <a href="">sad</a><a href="">ssad</a> <input type="text" id="text1" class="ckval" size="2" /> <br/> <input type="checkbox" id="ckval2" class="checkvaloare" />Trip 2 <a href="">sad</a><a href="">sassad</a> <input type="text" id="text2" class="ckval" size="2" />
JQUERY as
$(function () {
$("input[type=checkbox]").on('click', function () {
$(this).next().val($(this).is(':checked') ? '1' : '0');
});
$("input[type=text]").on('keyup', function () {
if ($(this).val()) {
$(this).prev().prop('checked', true);
} else {
$(this).prev().prop('checked', false);
}
});
});
但是这不起作用,当我使用 JSF 标签<h:selectBooleanBox>
时,它也不起作用。
您需要
使用 nextAll
和 prevAll
(以及first
伪选择器),因为复选框和文本框之间有锚点。
我还会将click
事件更改为change
$(function () {
$("input[type=checkbox]").on('change', function () {
$(this).nextAll('.ckval:first').val($(this).is(':checked') ? '1' : '0');
});
$("input[type=text]").on('keyup', function () {
if ($(this).val()) {
$(this).prevAll('.checkvaloare:first').prop('checked', true);
} else {
$(this).prevAll('.checkvaloare:first').prop('checked', false);
}
});
});
例
next()
只获取下一个同级元素。 在您的情况下,复选框后面的下一个同级元素是标签。在您想要的输入之前有两组标签,这就是为什么它在 3 个 'next()' 之后适合您。当然,使用 3 个下一个不是很漂亮,如果您在其中添加另一个元素,很容易中断。
用
nextAll('.ckval:first')
它将找到下一个 ckval 输入,而不是下一个元素。
相关文章:
- CKeditor不会在源代码模式下更新文本区域
- 基于复选框 Jquery 更新文本框
- 在里面输入新文本后更新文本区域内容的值
- 根据复选框选择 jQuery 更新文本框
- 如何在手动插入一些文本后更新文本区域的ng模型
- 使用选择框中的值更新文本区域
- 使用特定 ID 更新文本框
- SQL生成的选择菜单,根据相关值更新文本框
- JavaScript>on更改输入&选择更新文本区域
- 从下拉框更新文本框
- 当通过javascript而不是按键/复制/粘贴更新文本输入时使用的事件处理程序
- 使用 ID 更新文本区域值,而不是在 AngularJs 中使用 ng-model
- 如何使用 JavaScript 基于其他文本框更新文本框值
- 单击输入按钮时更新文本区域内容
- 更新文本框相对于表达式的值
- JS不更新文本框
- html5 画布 - 更新文本
- Elfinder文件管理器,带有多个按钮更新文本输入
- 挖空文本输入修改可观察不更新文本
- 在javascript中从servlet获得响应后更新文本区域