如何在Bootstrap 4下点击相应的单选按钮后启用文本输入?
How to enable text input after clicking a corresponding radio button under Bootstrap 4?
我正在使用 Bootstrap 4 并在我的网络应用程序中设计一个模拟项目提交表单。在交易行中,价格的文本输入是默认禁用的。点击'sell'按钮后启用文本输入怎么办?
<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 中,您可以在对按钮
调用 onclick 的函数中使用 document.getElementById("sell").setAttribute("disabled", false);
您可以先将所有带有Document.querySelectorAll()
. Then loop through them with forEach()
的收音机定位到附加事件(点击)。在事件处理程序函数中,您可以检查单击的单选按钮的 id,您可以根据它 set/remove 属性 (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>
我正在使用 Bootstrap 4 并在我的网络应用程序中设计一个模拟项目提交表单。在交易行中,价格的文本输入是默认禁用的。点击'sell'按钮后启用文本输入怎么办?
<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 中,您可以在对按钮
调用 onclick 的函数中使用document.getElementById("sell").setAttribute("disabled", false);
您可以先将所有带有Document.querySelectorAll()
. Then loop through them with forEach()
的收音机定位到附加事件(点击)。在事件处理程序函数中,您可以检查单击的单选按钮的 id,您可以根据它 set/remove 属性 (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>