Javascript 按下复选框时更改输入表单

Javascript 按下复选框时更改输入表单,javascript,jquery,forms,checkbox,Javascript,Jquery,Forms,Checkbox,我想创建一个网络表单,让用户有机会更轻松地创建票证 在此网络表单中,我有两个输入表单和一个复选框: 我想要的是以下内容(通过PowerPoint创建): 因此,如果用户单击复选框,webform将自动禁用第二个输入表单,并复制第一个输入表单的值和/或占位符。简单地说:如果用户单击复选框,第二个输入表单应该与第一个表单完全相同,只是它被禁用了 不幸的是,我不知道怎么做。现在,我的代码如下所示: 输入字段1(关键用户)+复选框: <div class="form-group"> &l

我想创建一个网络表单,让用户有机会更轻松地创建票证

在此网络表单中,我有两个输入表单和一个复选框:

我想要的是以下内容(通过PowerPoint创建):

因此,如果用户单击复选框,webform将自动禁用第二个输入表单,并复制第一个输入表单的值和/或占位符。简单地说:如果用户单击复选框,第二个输入表单应该与第一个表单完全相同,只是它被禁用了

不幸的是,我不知道怎么做。现在,我的代码如下所示:

输入字段1(关键用户)+复选框:

<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,以便将您的
    功能性地附加到它
对于JS,它非常简单:当在checkbox元素上注册
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');
}