Без использования формы для проверки Как отключить кнопку в угловом поле, если поле <input> пусто
Я пытаюсь сделать @output в angular для этого у меня есть поле ввода с кнопкой, я отправлю данные поля ввода родителю с помощью @output() Я хочу отключить кнопку, если поле ввода пусто, Как я могу отключить без использования проверки формы.
Я пробовал этот код
<input type="text" [(ngModel)] = "childInput" >
<button [disabled] ="!childInput.value" (click)="sendToParent()">Send To Parent</button>
но кнопка остается отключенной, если поле ввода пустое или нет.
PS Я нашел ответ с проверкой формы, но я не хотел делать с проверкой формы или определением переменной bool
2 ответа
Решение
Этот код будет работать
<input type="text" [(ngModel)] = "childInput" >
<button [disabled] ="!childInput" (click)="sendToParent()">Send To Parent</button>
Если вы не хотите использовать ngModel:
<input type="text" #childInput >
<button [disabled]="!childInput.value.length>0" (click)="sendToParent()">Send To Parent</button>
Я использовал этот код, но не работает с моей ступенчатой формой;
<!-- Step 6 -->
<div id="step-6" class="p-5 animated slideInRight" style="display: none;">
<div class="app-inner">
<h3 class="mb-5">Are You Old Enough to Get Financing?</h3>
<div class="app-row">
<div class="app-list-wrap">
<div class="app-list-wrap-inner">
<div class="app-list text-center">
<label class="label-text">Date of Birth</label><span id="error" style="color: red;"></span>
<div data-step="6" class="custom-box app-input-container dob">
<input name="dob" type="date" id="dob" placeholder="DD / MM / YYYY" [(ngModel)] = "childInput">
</div>
<span class="app-input-hint">DD / MM / YYYY</span>
</div>
</div>
</div>
</div>
</div>
<div class="app-btn-wrap">
<button data-step="5" class="app-btn prev">Previous</button>
<button data-step="7" class="app-btn next" id="dateOfBirthValidation" [disabled] ="!childInput" (click)="sendToParent()">Continue</button>
</div>
<div class="button-btm-text">
To be eligible to submit an application, you must be 18 or older.
</div>
</div>
Вот jquery для ступенчатой формы
$('.next').click(function () {
var pgrbar = $('.progress-bar').width();
var nextStep = $(this).data('step');
var currentStep = nextStep - 1;
var pgrbar = nextStep * 5.56;
$('.progress-bar').width(pgrbar + '%');
$('#step-' + currentStep).hide();
$('#step-' + nextStep).show();
$('#step-' + nextStep).removeClass("slideInLeft").addClass("slideInRight");
});
$('.prev').click(function () {
var pgrbar = $('.progress-bar').width();
var prevStep = $(this).data('step');
var currentStep = prevStep + 1;
var pgrbar = prevStep * 5.56;
$('.progress-bar').width(pgrbar + '%');
$('#step-' + currentStep).hide();
$('#step-' + prevStep).show();
$('#step-' + prevStep).removeClass("slideInRight").addClass("slideInLeft");
});