单击Bootstrap 4下的相应单选按钮后如何启用文本输入?

How to enable text input after clicking a corresponding radio button under Bootstrap 4?

提问人:ronzenith 提问时间:10/29/2019 最后编辑:ronzenith 更新时间:10/29/2019 访问量:1484

问:

我正在使用 Bootstrap 4 并在我的 Web 应用程序中设计一个模拟项目提交表单。在发生业务行中,价格的文本输入默认禁用。如果我在点击“出售”按钮后启用文本输入,我该怎么办?

<div class="form-inline">
   <div class="form-group">
      <div class="custom-control custom-radio custom-control-inline">
         <input type="radio" id="free" name="customRadioInline1" class="custom-control-input" checked>
            <label class="custom-control-label" for="free">Free</label>
      </div>
      <div class="custom-control custom-radio custom-control-inline">
         <input type="radio" id="sell" name="customRadioInline1" class="custom-control-input">
            <label class="custom-control-label" for="sell">Sell</label>
      </div>
   </div>
   <label for="price">Price</label>
   <input type="text" class="form-control" id="price" placeholder="HKD" disabled>
</div>

我希望在编写 JS 时会有一些代码在“sell”单选按钮上包含“onclick”和“add.eventListener”,但我不知道如何编码以便在选择出售按钮后启用输入价格,并在默认时保持禁用(即免费)。

或者,Bootstrap 4 有什么简单的方法吗?

谢谢你的帮助。

javascript html 引导程序 4 禁用输入

评论

0赞 OPTIMUS PRIME 10/29/2019
[...document.querySelectorAll('.custom-control-label')].forEach( e => e.addEventListener('click', function(){ your_Input_Id.focus(); }) );?

答:

0赞 Maudiy 10/29/2019 #1

在 javascript 中,您可以在按钮上调用 onclick 的函数中使用document.getElementById("sell").setAttribute("disabled", false);

评论

0赞 ronzenith 10/29/2019
<label for=“price”>Price</label> <input type=“text” class=“form-control” id=“price” placeholder=“HKD” disabled> 我使用“price”部分更新我的代码。对不起我的错过。
1赞 Mamun 10/29/2019 #2

您可以首先使用 Document.querySelectorAll() 定位所有无线电。然后使用 forEach() 遍历它们以附加事件(单击)。在事件处理函数中,您可以检查单击的单选按钮的 ID,您可以根据该 ID 设置/删除属性 ()。disabled

请尝试以下方法:

var radios = document.querySelectorAll('[name=customRadioInline1]');
Array.from(radios).forEach(function(r){
  r.addEventListener('click', function(){
    var priceEl = document.getElementById('price');
    if(this.id == 'sell')
      priceEl.removeAttribute('disabled');
    else
      priceEl.setAttribute('disabled', 'disabled');
  });
});
<div class="form-inline">
   <div class="form-group">
      <div class="custom-control custom-radio custom-control-inline">
         <input type="radio" id="free" name="customRadioInline1" class="custom-control-input" checked>
            <label class="custom-control-label" for="free">Free</label>
      </div>
      <div class="custom-control custom-radio custom-control-inline">
         <input type="radio" id="sell" name="customRadioInline1" class="custom-control-input">
            <label class="custom-control-label" for="sell">Sell</label>
      </div>
   </div>
   <label for="price">Price</label>
   <input type="text" class="form-control" id="price" placeholder="HKD" disabled>
</div>

评论

1赞 ronzenith 10/29/2019
谢谢!它有效!!!!!顺便说一句,想知道这个关键词指的是什么。是可变收音机吗?我总是对“这个”感到困惑......
1赞 Mamun 10/30/2019
@ronzenith,我们非常欢迎您。 指向发生事件(单击)的元素。在上面的示例中,如果单击第一个单选按钮指向第一个单选按钮,如果单击第二个单选按钮指向第二个单选按钮:)thisthisthis