我有一个表单,用户可以在其中选择:“ 7天”,“ 14天”,“ 30天”和文本输入字段“其他”:
<div class="form-group">
<label for="paymentperiod">Payment period</label>
<div class="col-5">
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="week" >7 days </label>
</div>
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="tweeweken">14 days</label>
</div>
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="vierweken" >30 days</label>
</div>
</div>
<div class="col-5">
Other:
<input [ngClass]="{'is-invalid': (form.controls.paymentperiod.errors && form.controls.paymentperiod.dirty), 'is-valid': !form.controls.paymentperiod.errors}"
id="paymentperiod" class="form-control" type="text" name="paymentperiod" autocomplete="off" placeholder="Other" formControlName="paymentperiod"/>
<ul class="help-block">
<li *ngIf="form.controls.paymentperiod.errors?.required && form.controls.paymentperiod.dirty">This field is required</li></ul>
</div>
</div>
<div class="form-group">
<label for="kmfacturatie">kmfacturatie</label>
<div class="col-5">
<div class="radio">
<label><input type="radio" name="kmfacturatie" formControlName="kmfacturatie" value="ja" >true</label>
</div>
<div class="radio">
<label><input type="radio" name="kmfacturatie" formControlName="kmfacturatie" value="nee">false</label>
</div>
</div>
</div>
但是,我希望在用户单击“其他”字段时重置或禁用单选框,以免使用户感到困惑。我该如何实现?因此,如果用户单击单选按钮,则文本输入字段也会重置。我看了几页,但没有帮助。在此先感谢:)
答案 0 :(得分:2)
您可以使用一些JavaScript来做到这一点。
function reset(){
let radios = document.getElementsByClassName('radio');
for(var i = 0; i< radios.length;i++){
let input = radios[i].getElementsByTagName('input');
if(input[0].name === 'paymentperiod')input[0].checked = false;
}
}
function reset2(){
document.getElementById('paymentperiod').value = '';
}
<div class="form-group">
<label for="paymentperiod">Payment period</label>
<div class="col-5">
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="week" onclick='reset2()' >7 days </label>
</div>
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="tweeweken" onclick='reset2()'>14 days</label>
</div>
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="vierweken" onclick='reset2()'>30 days</label>
</div>
</div>
<div class="col-5">
Other:
<input onclick='reset()'[ngClass]="{'is-invalid': (form.controls.paymentperiod.errors && form.controls.paymentperiod.dirty), 'is-valid': !form.controls.paymentperiod.errors}"
id="paymentperiod" class="form-control" type="text" name="paymentperiod" autocomplete="off" placeholder="Other" formControlName="paymentperiod"/>
<ul class="help-block">
<li *ngIf="form.controls.paymentperiod.errors?.required && form.controls.paymentperiod.dirty">This field is required</li></ul>
</div>
</div>
<div class="form-group">
<label for="kmfacturatie">kmfacturatie</label>
<div class="col-5">
<div class="radio">
<label><input type="radio" name="kmfacturatie" formControlName="kmfacturatie" value="ja" >true</label>
</div>
<div class="radio">
<label><input type="radio" name="kmfacturatie" formControlName="kmfacturatie" value="nee">false</label>
</div>
</div>
</div>
答案 1 :(得分:1)
您好,您可以在这里使用Jquery来实现它的完美代码,我可以尝试一下 您需要将jquery库放在html页面的同一文件夹中
<div class="form-group">
<label for="paymentperiod">Payment period</label>
<div class="col-5">
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="week" class="boutton">7
days </label>
</div>
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="tweeweken"
class="boutton">14 days</label>
</div>
<div class="radio">
<label><input type="radio" name="paymentperiod" formControlName="paymentperiod" value="vierweken"
class="boutton">30 days</label>
</div>
</div>
<div class="col-5">
Other:
<input
[ngClass]="{'is-invalid': (form.controls.paymentperiod.errors && form.controls.paymentperiod.dirty), 'is-valid': !form.controls.paymentperiod.errors}"
id="paymentperiod" class="form-control" type="text" name="paymentperiod" autocomplete="off" placeholder="Other"
formControlName="paymentperiod" />
<ul class="help-block">
<li *ngIf="form.controls.paymentperiod.errors?.required && form.controls.paymentperiod.dirty">This field is
required</li>
</ul>
</div>
</div>
<div class="form-group">
<label for="kmfacturatie">kmfacturatie</label>
<div class="col-5">
<div class="radio">
<label><input type="radio" name="kmfacturatie" formControlName="kmfacturatie" value="ja">true</label>
</div>
<div class="radio">
<label><input type="radio" name="kmfacturatie" formControlName="kmfacturatie" value="nee">false</label>
</div>
</div>
</div>
<script src="jquery-3.2.1.js"></script>
<script>
$(document).ready(function () {
$(".form-control").focus(function () {
$(".boutton").attr("disabled", true);
});
$(".form-control").blur(function () {
$(".boutton").attr("disabled", false);
});
});
</script>