复选框启用 Onload 以显示其他元素
checkbox enable onload to display other elements
好的, 这里的问题是允许表单从 mysql 设置中获取信息,例如启用或禁用。 然后,复选框将确定以下 3 个文本字段 (Box123( 是根据该请求启用还是禁用。
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="test.js"></script>
</head>
<body>
<form>
<input type="checkbox" name="detailsgiven" id="checker" checked=checked>Enabled?
<br>
<input type='text' name="details" id="tb1" value='box1'>
<br>
<input type='text' name="details" id="tb2" value='box2'>
<br>
<input type='text' name="details" id="tb3" value='box3'>
<br>
</form>
</body>
</html
>
test.js Jquery代码,允许根据激活变量启用或禁用检查
toggleInputs($('#checker'));
$('#checker').click(function () {
toggleInputs($(this));
});
function toggleInputs(element) {
if (element.prop('checked')) {
$('#tb1').prop('disabled', false);
$('#tb2').prop('disabled', false);
$('#tb3').prop('disabled', false);
} else {
$('#tb1').prop('disabled', true);
$('#tb2').prop('disabled', true);
$('#tb3').prop('disabled', true);
}
}
虽然你已经接受了答案,但我觉得这个答案有点过于复杂,并且留下了不必要的冗余。也就是说,我建议采用以下方法:
function toggleInputs(element) {
/* using a multiple selector
checking whether the check-box is checked or not using ':is()`,
which returns a Boolean */
$('#tb1, #tb2, #tb3').prop('disabled', element.is(':checked'));
}
$('#checker').change(function(){
// event-handling (reacting to the change event)
toggleInputs($(this));
/* the next change() (without arguments) triggers the change event,
and, therefore, the event-handling */
}).change();
JS小提琴演示。
修改了上述函数(使用 !
运算符(,使字段在checked
input
时可编辑,并在未选中input
时disabled
:
function toggleInputs(element) {
$('#tb1, #tb2, #tb3').prop('disabled', !element.is(':checked'));
}
$('#checker').change(function(){
toggleInputs($(this));
}).change();
JS小提琴演示。
引用:
-
:checked
选择器。 -
change()
. -
is()
. -
prop()
.
你去...实际上使用jquery作为您的问题:
.HTML
<form>
<input type="checkbox" name="detailsgiven" id="checker" checked=checked>Enabled?
<br>
<input type='text' name="details" id="tb1" value='box1'>
<br>
<input type='text' name="details" id="tb2" value='box2'>
<br>
<input type='text' name="details" id="tb3" value='box3'>
<br>
</form>
JavaScript
$(document).ready(function() {
toggleInputs($('#checker'));
$('#checker').click(function () {
toggleInputs($(this));
});
});
function toggleInputs(element) {
if (element.prop('checked')) {
$('#tb1').prop('disabled', false);
$('#tb2').prop('disabled', false);
$('#tb3').prop('disabled', false);
} else {
$('#tb1').prop('disabled', true);
$('#tb2').prop('disabled', true);
$('#tb3').prop('disabled', true);
}
}
http://jsfiddle.net/Q9Lg4/40/
进行初始调用时,尚未加载主体中的元素。您可以将对 toggleInputs 的第一次调用包装在 JQuery 就绪事件函数中,或者将包含 test.js 的脚本标记放在表单之后。
相关文章:
- 如何在不影响其他元素的情况下扩展DIV
- 单击其他元素时,我如何使用 jQuery 忽略更改事件
- 从其他元素上的单击事件访问image src属性
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 将一个元素放在具有相同z索引的其他元素前面
- 将href中的图像替换为其他元素中的图像
- JavaScript删除所有其他元素
- 如何在 *ngFor 列表中显示单击的元素,使用 Angular 2 隐藏其他元素
- 单击更改其他元素源
- JavaScript (w/jQuery) - 当被其他元素包围时,在悬停时增长一个元素以填充容器
- 如何使用可调整大小的元素重叠其他元素
- 如果所有其他元素都填写在AngularJS中,如何动态添加新的输入元素
- 更改包含其他元素的元素的文本
- 将静态标头置于所有其他元素之上
- jQuery或JavaScript获取靠近其他元素的元素
- 从中删除元素'的父元素,并将其附加到其他元素
- 获取更改跨度的值,使其显示为其他元素
- jQuery don'当元素被其他元素检索时,它不能正常工作
- 具有固定元素并填充有其他元素的页面
- Jquery索引与其他元素的关系