Javascript 按下复选框时更改输入表单
我想创建一个网络表单,让用户有机会更轻松地创建票证 在此网络表单中,我有两个输入表单和一个复选框: 我想要的是以下内容(通过PowerPoint创建): 因此,如果用户单击复选框,webform将自动禁用第二个输入表单,并复制第一个输入表单的值和/或占位符。简单地说:如果用户单击复选框,第二个输入表单应该与第一个表单完全相同,只是它被禁用了 不幸的是,我不知道怎么做。现在,我的代码如下所示: 输入字段1(关键用户)+复选框:Javascript 按下复选框时更改输入表单,javascript,jquery,forms,checkbox,Javascript,Jquery,Forms,Checkbox,我想创建一个网络表单,让用户有机会更轻松地创建票证 在此网络表单中,我有两个输入表单和一个复选框: 我想要的是以下内容(通过PowerPoint创建): 因此,如果用户单击复选框,webform将自动禁用第二个输入表单,并复制第一个输入表单的值和/或占位符。简单地说:如果用户单击复选框,第二个输入表单应该与第一个表单完全相同,只是它被禁用了 不幸的是,我不知道怎么做。现在,我的代码如下所示: 输入字段1(关键用户)+复选框: <div class="form-group"> &l
<div class="form-group">
<label class="control-label col-sm-2" for="keyuser">Key-User:</label>
<div class="col-sm-10">
<input type="keyuser" class="form-control" id="keyuser" placeholder="Username Key-User">
<div class="checkbox">
<label onclick="checkbox()">
<input type="checkbox">
</label>Is the affected user
</div>
</div>
}
如何实现上述功能?我希望立即对脚本进行一些更改:
- 不要使用内联JS。相反,为复选框(而不是标签元素)创建一个
事件处理程序onchange
- 为复选框使用ID,以便将您的
功能性地附加到它
onchange
事件时,通过简单地计算.is(':checked')
布尔值来评估它是否被选中:
- 如果选中:
- 使用
.prop('disabled',true)
- 使用
.attr('placeholder',…)更新占位符属性
- 使用
- 如果未选中:
- 使用
.prop('disabled',false)
- 再次使用
.attr('placeholder',…)更新占位符属性。
- 使用
$(函数(){
$('#checkbox1')。在('change',function()上{
如果($(this).is(':checked')){
$(“#affuser”)
.prop('disabled',true)
.attr('占位符',$('#keyuser').attr('占位符');
}否则{
$(“#affuser”)
.prop('disabled',false)
.attr('占位符','受影响用户的用户名');
}
});
});代码>
主要用户:
是受影响的用户吗
受影响用户:
您的检查不应该是布尔值而不是字符串吗?非常感谢。禁用功能现在工作得很好,但我如何实现该功能,以便在单击复选框时自动将“keyuser”的值/占位符复制到“affuser”?@TimKühn如果您需要,只需读取keyuser输入的占位符属性值并分配它,即$(“#affuser”).attr('placeholder',$('keyuser').attr('placeholder'))
。我已经更新了答案以反映这一点;)
<div class="form-group">
<label class="control-label col-sm-2" for="affuser">Affected User:</label>
<div class="col-sm-10">
<input type="affuser" class="form-control" id="affuser" placeholder="Username affected user">
</div>
function checkbox() {
"use strict";
if (check === "False") {
check = "True";
$('#affuser').attr('placeholder', 'Username Key-User');
} else {
check = "False";
$('#affuser').attr('placeholder', 'Username affected user');
}