Do we have to define each element as FormControl in Angular2 Reactive Form? - forms

i have too much input element and form. I would like to use reactive form in angular2 but i don't want to define each element as formcontrol. I need to apply only where necessary like required and custom validation. Is it possible? Thank you all answer.
I am using like this right now;
loadFormBuild() {
this.firmaGenelForm = this.fb.group({
'kimlikTipiFormControl': [this.kimlikTipi],
'tcknoFormControl': [null, Validators.compose([Validators.required, Validators.minLength(11), Validators.maxLength(11), tcknNoValidator])],
'vergiNumarasiFormControl': [],
'yabanciVergiNumarasiFormControl': [],
'sahisAdiFormControl': [null, Validators.required],
'sahisSoyadiFormControl': [null, Validators.required],
'firmaAdiFormControl': [],
'musteriTipiListFormControl': [null, Validators.required],
'unvanFormControl': [null, Validators.required],
'firmaAramaFormControl': [],
'firmaAcilisTarihiFormControl': [],
'sektorFormControl': [],
'finansKoduFormControl': [],
'musteriTemsilcisiFormControl': [],
'grupFirmaFormControl': [],
'tarafKoduFormControl': [],
'riskliMüsteriFormControl': [],
'eFaturaMusteriFormControl': [],
'eFaturaTarihiFormControl': [],
'firmaKapaliMiFormControl': [],
'eArsivMiFormControl': [],
'eArsivPostaAdresiFormControl': []
});
}
Html;
<form [formGroup]="firmaGenelForm" (ngSubmit)="submitForm(firmaGenelForm.value)">
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<button pButton style="height:25px;width:100%;background-color: transparent;color:#5cb85c;border-color:#5cb85c"
type="submit" label="Kaydet" icon="fa-save" iconPos="right">
</button>
</div>
</div>
<p-growl [value]="msgs"></p-growl>
<p-panel [style]="{'margin-bottom':'5px'}">
<header>
<span class="ui-panel-title "
style="font-size:14px;display:inline-block;margin-top:2px">Firma Genel Bilgileri</span>
</header>
<div class="ui-grid ui-grid-responsive ui-fluid ui-grid-pad">
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<label class="firma-label">Firma Ara:</label>
</div>
<div class="ui-grid-col-2">
<p-autoComplete [(ngModel)]="searchInput" [suggestions]="filterFirmaDto"
(completeMethod)="filterFirma($event)" [size]="30"
(onSelect)="onDropdownClick(searchInput)"
[minLength]="3" placeholder="Firma Arayınız"
[formControl]="firmaGenelForm.controls['firmaAramaFormControl']">
<template let-brand *ngFor="let filter of filterFirmaDto">
<li>{{filter.adi}} {{filter.tcknNo}} {{filter.yabanciVergiNumarasi}} {{filter.vergiNumarasi}}</li>
</template>
</p-autoComplete>
</div>
<div class="ui-grid-col-1">
<label class="firma-label"> Kimlik Tipi</label>
</div>
<div class="ui-grid-col-2">
<p-radioButton name="group1" value="gercek" label="Gerçek" [selected]="true" [(ngModel)]="kimlikTipi"
(click)="changeKimlikTipi(kimlikTipi)"
formControlName="kimlikTipiFormControl"></p-radioButton>
<p-radioButton name="group1" value="tuzel" label="Tüzel" [(ngModel)]="kimlikTipi"
(click)="changeKimlikTipi(kimlikTipi)"
formControlName="kimlikTipiFormControl"></p-radioButton>
<p-radioButton name="group1" value="yabanci" label="Yabancı" [(ngModel)]="kimlikTipi"
(click)="changeKimlikTipi(kimlikTipi)"
formControlName="kimlikTipiFormControl"></p-radioButton>
</div>
<div class="ui-grid-col-1" *ngIf="kimlikTipi=='gercek'">
<label class="firma-label">T.C. No: </label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi=='gercek'">
<input id="tcknNo" type="text" maxlength="11" minlength="11" pInputText placeholder="T.C Numarası Giriniz"
[(ngModel)]="firmaDto.tcknNo" onkeypress='return event.charCode >= 48 && event.charCode <= 57'
formControlName="tcknoFormControl"/>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['tcknoFormControl'].hasError('required') && submitted">
T.C Alanı Boş Bırakılamaz
</div>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['tcknoFormControl'].hasError('minlength') && submitted">
Lütfen Eksik Karakter Girmeyiniz
</div>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['tcknoFormControl'].hasError('invalidTcknNo') && submitted">
Lütfen Geçerli Değer Giriniz
</div>
</div>
<div class="ui-grid-col-1" *ngIf="kimlikTipi=='gercek'|| kimlikTipi=='tuzel'">
<label class="firma-label">Vergi No:</label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi=='gercek'|| kimlikTipi=='tuzel'">
<input id="vkNo" type="text" maxlength="10" minlength="10" pInputText placeholder="Vergi No Giriniz"
[(ngModel)]="firmaDto.vergiNumarasi" onkeypress='return event.charCode >= 48 && event.charCode <= 57'
formControlName="vergiNumarasiFormControl"/>
</div>
<div class="ui-grid-col-1" *ngIf="kimlikTipi=='yabanci'">
<label class="firma-label">Ybn. Vergi No:</label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi=='yabanci'">
<input id="yabanciVkNo" type="text" size="30" pInputText placeholder="Yabancı Vergi No Giriniz"
[(ngModel)]="firmaDto.yabanciVergiNumarasi"
formControlName="yabanciVergiNumarasiFormControl"/>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-1" *ngIf="kimlikTipi=='gercek'">
<label class="firma-label">Şahıs Adı</label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi=='gercek'">
<input id="sahisAdiInput" type="text" size="30" pInputText placeholder="Firma Adı Giriniz"
[(ngModel)]="firmaDto.sahisAdi" formControlName="sahisAdiFormControl"/>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['sahisAdiFormControl'].hasError('required') && submitted">
Şahıs Adı Boş Bırakılamaz
</div>
</div>
<div class="ui-grid-col-1" *ngIf="kimlikTipi!='gercek'">
<label class="firma-label">Firma Adı</label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi!='gercek'">
<input id="FirmaAdiInput" type="text" pInputText placeholder="Firma Adı Giriniz"
[(ngModel)]="firmaDto.adi" formControlName="firmaAdiFormControl"/>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['firmaAdiFormControl'].hasError('required') && submitted">
Firma Adı Boş Bırakılamaz
</div>
</div>
<div class="ui-grid-col-1" *ngIf="kimlikTipi=='gercek'">
<label class="firma-label">Şahıs Soyadı</label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi=='gercek'">
<input id="sahisSoyadiInput" type="text" pInputText placeholder="Soyadı Giriniz"
[(ngModel)]="firmaDto.sahisSoyadi"
formControlName="sahisSoyadiFormControl"/>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['sahisSoyadiFormControl'].hasError('required') && submitted">
Şahıs Soyadı Boş Bırakılamaz.
</div>
</div>
<div class="ui-grid-col-1" *ngIf="kimlikTipi=='gercek'">
<label class="firma-label">Firma Adı </label>
</div>
<div class="ui-grid-col-2" *ngIf="kimlikTipi=='gercek'">
<label class="firma-label">{{firmaDto.sahisAdi}} {{firmaDto.sahisSoyadi}}</label>
</div>
<div class="ui-grid-col-1">
<label class="firma-label">Unvan</label>
</div>
<div class="ui-grid-col-2">
<input id="unvan" type="text" pInputText placeholder="Unvan Giriniz"
[(ngModel)]="firmaDto.unvan"
formControlName="unvanFormControl"/>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['unvanFormControl'].hasError('required') && submitted">
Unvan Boş Bırakılamaz.
</div>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<label class="firma-label">Firma Tipi </label>
</div>
<div class="ui-grid-col-11">
<p-multiSelect [options]="musteriTipiList" class="ng-invalid"
[(ngModel)]="firmaDto.firmaTipiIdList"
[formControl]="firmaGenelForm.controls['musteriTipiListFormControl']"
(onChange)="musteriValidation(firmaDto.firmaTipiIdList)"></p-multiSelect>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['musteriTipiListFormControl'].hasError('required') && submitted">
Firma Tipi Boş Bırakılamaz
</div>
</div>
</div>
</div>
</p-panel>
<p-panel [style]="{'margin-bottom':'5px'}">
<header>
<span class="ui-panel-title "
style="font-size:14px;display:inline-block;margin-top:2px">Firma Analiz Bilgileri</span>
<button pButton type="button"
style="float: right;width:15%;color:#5cb85c;background-color:transparent;border-color: #5cb85c;font-size:12px"
(click)="addilgiliKisi()" icon="fa-plus"
iconPos="right" label="Ilgili Kişi Ekle"></button>
</header>
<div class="ui-grid ui-grid-responsive ui-fluid ui-grid-pad">
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<label class="firma-label">Açılış Tarihi</label>
</div>
<div class="ui-grid-col-2">
<p-inputMask mask="9999-99-99" [(ngModel)]="firmaDto.acilisTarihi" placeholder="1900/01/01"
[formControl]="firmaGenelForm.controls['firmaAcilisTarihiFormControl']"></p-inputMask>
</div>
<div class="ui-grid-col-1">
<label class="firma-label">Sektor Tipi</label>
</div>
<div class="ui-grid-col-2">
<p-dropdown [options]="sektorList" [(ngModel)]="firmaDto.sektorId" [autoWidth]="true"
[style]="{'width':'100%'}" filter="filter"
[formControl]="firmaGenelForm.controls['sektorFormControl']"></p-dropdown>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['sektorFormControl'].hasError('required') && submitted">
Lütfen Sektör Tipini Seçiniz.
</div>
</div>
<div class="ui-grid-col-1">
<label class="firma-label">Finans Kodu</label>
</div>
<div class="ui-grid-col-2">
<p-dropdown [options]="finansKoduList" [(ngModel)]="firmaDto.finansKoduId" [autoWidth]="true"
[style]="{'width':'100%'}" filter="filter"
[formControl]="firmaGenelForm.controls['finansKoduFormControl']"></p-dropdown>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['finansKoduFormControl'].hasError('required') && submitted ">
Lütfen Finans Tipini Seçiniz
</div>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<label class="firma-label"> Müşteri Temsilcisi </label>
</div>
<div class="ui-grid-col-2">
<p-dropdown [options]="cities" [style]="{'width':'100%'}" [autoWidth]="true"
[(ngModel)]="firmaDto.defaultTelefonNumarasiAdresMetni" filter="filter"
[formControl]="firmaGenelForm.controls['musteriTemsilcisiFormControl']"></p-dropdown>
</div>
<div class="ui-grid-col-1">
<label class="firma-label"> Grup Firma </label>
</div>
<div class="ui-grid-col-2">
<p-dropdown [options]="grupFirmaKoduList" [(ngModel)]="firmaDto.grupFirmaId" [autoWidth]="true"
[style]="{'width':'100%'}" filter="filter"
[formControl]="firmaGenelForm.controls['grupFirmaFormControl']"></p-dropdown>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['grupFirmaFormControl'].hasError('required') && submitted">
Lütfen Grup Firma Seçiniz
</div>
</div>
<div class="ui-grid-col-1">
<label class="firma-label"> Taraf Kodu </label>
</div>
<div class="ui-grid-col-2">
<p-dropdown [options]="tarafKoduList" [(ngModel)]="firmaDto.tarafKoduId"
[style]="{'width':'100%'}" filter="filter"
[formControl]="firmaGenelForm.controls['tarafKoduFormControl']"></p-dropdown>
<div class="validation-alert validation-error"
*ngIf="firmaGenelForm.controls['tarafKoduFormControl'].hasError('required') && submitted ">
Lütfen Taraf Kodu Seçiniz
</div>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<label class="firma-label"> Riskli Müşteri </label>
</div>
<div class="ui-grid-col-2">
<div class="ui-g-12">
<p-checkbox [(ngModel)]="firmaDto.riskliMusteriMi" label="Evet" binary="false"
name="riskliMusteriMi"
[formControl]="firmaGenelForm.controls['riskliMüsteriFormControl']"></p-checkbox>
</div>
</div>
<div class="ui-grid-col-1">
<label class="firma-label">e-Fatura Müşterisi </label>
</div>
<div class="ui-grid-col-2">
<div class="ui-g-12">
<p-checkbox name="eFaturaMusterisiMi" [(ngModel)]="firmaDto.eFaturaMusterisiMi" label="Evet"
binary="false"
[formControl]="firmaGenelForm.controls['eFaturaMusteriFormControl']"></p-checkbox>
</div>
</div>
<div class="ui-grid-col-1" *ngIf="firmaDto.eFaturaMusterisiMi">
<label class="firma-label">e-Fatura Tarihi</label>
</div>
<div class="ui-grid-col-2" *ngIf="firmaDto.eFaturaMusterisiMi">
<p-inputMask mask="9999-99-99" [(ngModel)]="firmaDto.eFaturaTarihi" placeholder="1900/01/01"
slotChar="mm/dd/yyyy"
[formControl]="firmaGenelForm.controls['eFaturaTarihiFormControl']"></p-inputMask>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-1">
<label class="firma-label">Firma Kapalı</label>
</div>
<div class="ui-grid-col-2">
<div class="ui-g-12">
<p-checkbox [(ngModel)]="firmaDto.firmaKapaliMi" label="Evet" binary="false"
name="firmaKapaliMi"
[formControl]="firmaGenelForm.controls['firmaKapaliMiFormControl']"></p-checkbox>
</div>
</div>
<div class="ui-grid-col-1">
<label class="firma-label"> e-Arşiv </label>
</div>
<div class="ui-grid-col-2">
<div class="ui-g-12">
<p-checkbox [(ngModel)]="firmaDto.eArsivMi" label="Evet" binary="false" name="eArsivmİ"
[formControl]="firmaGenelForm.controls['eArsivMiFormControl']"></p-checkbox>
</div>
</div>
<div class="ui-grid-col-1" *ngIf="firmaDto.eArsivMi">
<label class="firma-label"> e-Arşiv Posta Adresi</label>
</div>
<div class="ui-grid-col-2" *ngIf="firmaDto.eArsivMi">
<div class="ui-g-12">
<input id="eArşivPostaAdresi" type="text" size="30" pInputText placeholder="Email Giriniz"
[(ngModel)]="firmaDto.eArsivMailAdresi"
[formControl]="firmaGenelForm.controls['eArşivPostaAdresiFormControl']"/>
</div>
</div>
</div>
</div>
<p-accordion *ngFor="let firmaIlgiliKisi of firmaIlgiliKisiList">
<firma-ilgili-kisi [firmaIlgiliKisi]="firmaIlgiliKisi"
(firmaIlgiliKisiSil)="firmaIlgiliKisiListedenSil($event)"></firma-ilgili-kisi>
</p-accordion>
</p-panel>
</form>

The ngForm directive automatically registers all child controls that use ngModel with a name attribute.
For example:
<form #f="ngForm" (ngSubmit)="onSubmit(f)">
<input name="first" ngModel>
<input name="last" ngModel>
<button>Submit</button>
</form>

Related

Bootstrap 4 DatePicke issue

I am using bootstrap 4, jQuery 3.3.1 and datepicker (http://www.eyecon.ro/bootstrap-datepicker/)
I have three issues:
The Calendar icon is not the size of the input box
When submit without selecting the date, bootstrap validation message not working.
Auto close is not working.
$(document).ready(function()
{
$('#depositeDate').datepicker({
"setDate": new Date(),
"autoclose": true
});
})
<div class="form-group row">
<label for="depositeDate" class="col-sm-4 col-form-label col-form-label-lg">Deposit Date</label>
<div class="col-sm-2 input-group date">
<input type="text" class=" text-input form-control" id ="depositeDate" placeholder="MM/DD/YYYY">
<div class="input-group-addon">
<i class="fas fa-calendar-alt fa-3x" style="color:RED"></i> </div>
<div class="invalid-feedback">
Please enter a valid Order Number.
</div>
</div>
</div>
The Calendar icon is not the size of the input box
The markup for input group addon is changed in Bootstrap 4.0 stable
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username" aria-describedby="basic-addon2">
<div class="input-group-append">
<span class="input-group-text" id="basic-addon2">#example.com</span>
</div>
</div>
Your code should be
<div class="input-group date" >
<input type="text" class="form-control" id ="depositeDate" placeholder="MM/DD/YYYY">
<div class="input-group-append">
<span class="input-group-text" id="basic-addon2"><span class="fa fa-calendar"></span></span>
</div>
</div>
3.Auto close is not working.
I don't see setting like "autoclose": true , we should explicitly call to close the datepicker.
.on('changeDate', function(ev) {
checkout.hide();
})
<div class="form-group row justify-content-center align-items-center">
<label for="depositeDate" class="col-sm-3 col-form-label">Deposit Date</label>
<div class="col-sm-3 input-group date" >
<input type="text" class="text-input form-control" id ="depositeDate" placeholder="MM/DD/YYYY">
<div class="input-group-addon" style="cursor: pointer;" onclick="$('#depositeDate').focus();">
<i class="fas fa-calendar-alt fa-2x"></i>
</div>
</div>
</div>
this code will do:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.7.14/js/bootstrap-datetimepicker.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.7.14/css/bootstrap-datetimepicker.min.css">
<br>
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<label for="Order number">Order number</label>
<input type="text" id="Order number" >
</div>
<div class="form-group">
<div class='input-group date' id='datetimepicker1'>
<label for="male">Deposit Date</label>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
</div>
</div>
<script>$(function() {
$('#datetimepicker1').datetimepicker();
});</script>
check out the fiddle:https://jsfiddle.net/rqy7L2do/

Unable to get submit action to occur in TYPO3 Fluid contact form

We are trying to manage to get a simple contact form running. But regardless of what we try, we get nothing at all.
The form itself is on the front-end and configured like this :
<f:section name="Main">
<div class="ext-frame container">
<h2>{record.header}</h2>
<f:form action="submit" name="order" object="{order}" class="form-horizontal">
<f:for each="{settings.offer}" as="obj" key="id">
<div class="row offer">
<f:if condition="{obj.offer.img}">
<f:then>
<div class="col-sm-4 col-md-4 offer-img-container">
<img src="../{obj.offer.img}" class="offer-image" alt="{obj.offer.img.alternative}" />
</div>
</f:then>
</f:if>
<div class="col-sm-8 col-md-8 {f:if(condition: '{obj.offer.img} == \'\'', then: 'col-sm-offset-4 col-md-offset-4')}">
<label class="offer-label">
<f:form.radio property="offer" value="{id}" />
<div class="pull-right">
<p class="lead">
{obj.offer.title}<br/>
<small>{obj.offer.subtitle}</small>
</p>
<p class="small">{obj.offer.description}</p>
</div>
</label>
</div>
</div>
<hr />
</f:for>
<div class="form-group row">
<label for="salut" class="col-sm-3 control-label">Anrede*</label>
<div class="col-sm-5">
<f:form.select property="salut" options="{herr: 'Herr', frau: 'Frau'}" class="form-control" />
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-3 control-label">Vorname*</label>
<div class="col-sm-5">
<f:form.textfield property="name" value="" class="form-control" />
</div>
</div>
<div class="form-group row">
<label for="surname" class="col-sm-3 control-label">Nachname*</label>
<div class="col-sm-5">
<f:form.textfield property="surname" value="" class="form-control" />
</div>
</div>
<div class="form-group row">
<div class="col-sm-3 cusnr">
<label for="cusNr" class="control-label">Kundennummer</label>
<span id="helpBlock" class="help-block">(wenn bekannt)</span>
</div>
<div class="col-sm-5">
<f:form.textfield property="cusNr" value="" class="form-control" />
</div>
</div>
<div class="form-group row">
<label for="addr" class="col-sm-3 control-label">Straße/Hausnr.*</label>
<div class="col-sm-5">
<f:form.textfield property="addr" value="" class="form-control" />
</div>
</div>
<div class="form-group row">
<label for="zip" class="col-sm-3 control-label">PLZ*</label>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-addon">D-</span>
<f:form.textfield property="zip" value="" class="form-control" type="number" maxlength="5" />
</div>
</div>
</div>
<div class="form-group row">
<label for="city" class="col-sm-3 control-label">Ort*</label>
<div class="col-sm-5">
<f:form.textfield property="city" value="" class="form-control" />
</div>
</div>
<div class="form-group row">
<label for="mail" class="col-sm-3 control-label">E-Mail*</label>
<div class="col-sm-5">
<f:form.textfield property="mail" value="" class="form-control" type="email" />
</div>
</div>
<div class="form-group row">
<label for="phone" class="col-sm-3 control-label">Telefon</label>
<div class="col-sm-5">
<f:form.textfield property="phone" value="" class="form-control" type="tel" />
</div>
</div>
<div class="form-group row"><div class="col-sm-offset-3 col-sm-5">
<f:form.select property="know" options="{
0: 'a?*',
1: 'a',
2: 'b',
3: 'c',
4: 'd',
5: 'e',
6: 'f',
7: 'g'
}" class="form-control" />
</div></div>
<div class="form-group row">
<div class="col-sm-offset-3 col-sm-9">
<div class="checkbox">
<label>
<f:form.checkbox name="term" value="1" />
Ich habe die AGB gelesen und erkläre mich mit
ihnen einverstanden. Ich wurde über mein <a href="widerruf.php" target="_blank">
Widerrufsrecht</a> informiert.
</label>
</div>
</div>
</div>
<div class="form-group row">
<f:form.submit name="submit" value="Send" class="col-xs-12 col-sm-5 col-sm-offset-3 btn" />
</div>
</f:form>
</div>
</f:section>
In our ContentController.php there is also a submitAction given but it seems that this Action is never called :
public function submitAction() {
echo 'Testoutput';exit;
}
Where does the form lead you after submitting? Check out the final HTML action="" if everything is correct.
Try to set the form "method" to POST. I've just had some problems with forms using GET because the target PID got lost for unknown reasons so I had to add a <input type="hidden" name="id" value="{targetPid}" /> to get it working.

Form inputs in one line

I have grouped 3 inputs in one line (bootply)
<div class="container">
<div class="row">
<div class="form-group has-warning">
<label for="inputName" class="col-lg-2 col-sm-3 control-label">name</label>
<div class="col-md-2 col-sm-2">
<input type="text" class="form-control" placeholder="name" name="order">
</div>
<label for="inputWarning1" class="col-lg-1 col-sm-3 control-label">quantity</label>
<div class="col-md-2 col-sm-2">
<input type="number" class="form-control " placeholder="quantity" name="quantity" id="inputWarning1">
</div>
<label for="inputName" class="col-lg-1 col-sm-3 control-label">####</label>
<div class="col-md-2 col-sm-2">
<input type="number" class="form-control" placeholder="AA" name="packetNumber">
</div>
</div>
</div>
</div>
and I want only the input with quantity has the color of the class has-warning. Is there a way to do that by keeping 3 inputs in one line?
Just remove has-warning class from the div which has class form-group and put a separate div above the quantity lable like below:
<div class="container">
<div class="row">
<div class="form-group">
<label for="inputName" class="col-lg-2 col-sm-3 control-label">name</label>
<div class="col-md-2 col-sm-2">
<input type="text" class="form-control" placeholder="name" name="order">
</div>
<div class="has-warning">
<label for="inputWarning1" class="col-lg-1 col-sm-3 control-label">quantity</label>
<div class="col-md-2 col-sm-2">
<input type="number" class="form-control " placeholder="quantity" name="quantity" id="inputWarning1">
</div>
</div>
<label for="inputName" class="col-lg-1 col-sm-3 control-label">####</label>
<div class="col-md-2 col-sm-2">
<input type="number" class="form-control" placeholder="AA" name="packetNumber">
</div>
</div>
</div>
</div>
Edited Code In Bootply
Check It.

Form submit, Input:all() not showing all inputs

RESTfully, When I submit my form and return Input:all() in the Store method I'm getting only couple inputs not all of them!!
Can anyone help me here to find out why?
and advise me if I've to use Ajax all the time to submit forms, With example please!
Store method in the Controller:
/**
* Store a newly created HOTEL in DB.
*
* #return Response
*/
public function store(/*AddNewHotelRequest $addNewHotelRequest*/)
{
if(Request::ajax()) {
if ( Session::token() !== Input::get( '_token' ) ) {
return Response::json( array(
'msg' => 'Unauthorized attempt to create setting'
) );
}
$input = Request::all();
$response = [
'status' => 'success',
'input' => $input,
'msg' => 'Hotel created successfully',
];
return Response::json( $response );
}
// return Input::all(); //with Request::all() same output
}
Form from view "create new hotel"
{!! Form::open([ 'data-remote' ,'method'=>'POST', 'action' => 'HotelsController#store', 'class' => 'panel form-horizontal','id'=>'hotelForm']) !!}
<input id="myToken" type="hidden" name="_token" value="{{ csrf_token() }}" />
<script> var _CSRT_token = "{{ csrf_token() }} " ;</script>
<div class="panel-heading">
<span class="panel-title">Adding New Hotel</span>
</div>
<div class="panel-body">
<!-- / .form-group of Errors -->
<div class="form-group">
<div class="col-sm-12">
#include('errors.list')
</div>
</div>
<!-- Hotel Name -->
<div class="form-group">
<label for="hotel_name" class="col-sm-2 control-label">Hotel name *</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="hotel_name" name="hotel_name" placeholder="Hotel name">
</div>
<p class="label label-warning label-tag">Name should be in English</p>
</div>
<!-- / .form-group of hotel_details -->
<div class="form-group">
<label for="hotel_details" class="col-sm-2 control-label">Hotel Details</label>
<div class="col-sm-8">
<textarea class="form-control" id="hotel_details" placeholder="Short description, General information or Some Details about this Hotel" rows="3"></textarea>
</div>
<p class="label label-warning label-tag">Details should be in English</p>
</div>
<!-- Hotel website -->
<div class="form-group">
<label for="hotel_website" class="col-sm-2 control-label">Website *</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="hotel_website" name="hotel_website" placeholder="http://">
</div>
</div>
<!-- / .form-group of rank -->
<div class="form-group">
<label for="rank" class="col-sm-2 control-label">Rank</label>
<div class="col-sm-1">
<input type="text" class="form-control" id="rank" placeholder="Boutique or 4">
</div>
</div>
<div class="panel colourable">
<div class="panel-body">Prices</div>
<!-- / .form-group of single_price -->
<div class="form-group">
<label for="single_price" class="col-sm-2 control-label">Single price</label>
<div class="input-group col-sm-1">
<span class="input-group-addon">€</span>
<input type="text" class="form-control room-price-group" id="single_price">
<span class="input-group-addon">.00</span>
</div>
</div>
<!-- / .form-group of double_price -->
<div class="form-group">
<label for="double_price" class="col-sm-2 control-label">Double price</label>
<div class="input-group col-sm-1">
<span class="input-group-addon">€</span>
<input type="text" class="form-control room-price-group" id="double_price">
<span class="input-group-addon">.00</span>
</div>
</div>
<!-- / .form-group of extra_bed_price -->
<div class="form-group">
<label for="extra_bed_price" class="col-sm-2 control-label">Extra Bed price</label>
<div class="input-group col-sm-1">
<span class="input-group-addon">€</span>
<input type="text" class="form-control" id="extra_bed_price">
<span class="input-group-addon">.00</span>
</div>
</div>
</div>
<div class="form-group">
<label for="facilities" class="col-sm-2 control-label">Facilities *</label>
<div class="col-sm-10">
<select id="facilities" class="col-sm-8 form-controljs-example-basic-multiple" name="facilities" multiple="multiple">
<optgroup label="Free">
#foreach($facilities as $facility)
#if(!$facility->is_surcharge)
<option class="" value="{{ $facility->id }}">{{ $facility->name }}</option>
#endif
#endforeach
</optgroup>
<optgroup label="Surcharge">
#foreach($facilities as $facility)
#if($facility->is_surcharge)
<option value="{{ $facility->id }}">{{ $facility->name }}</option>
#endif
#endforeach
</optgroup>
</select>
</div>
</div>
<div class="panel colourable">
<div class="panel-body">Address</div>
<!-- / .form-group of Country -->
<div class="form-group">
<label for="country" class="col-sm-2 control-label">Country *</label>
<div class="col-sm-2">
<select id="country" class="form-control" name="country" >
<option></option>
#foreach($countries as $country)
<option value="{{ $country->id }}" phone_code="{{ $country->phone_code }}" >{{ $country->name }}</option>
#endforeach
</select>
<p class="help-block helperQuote">Begin by choosing your country.</p>
</div>
</div>
<!-- / .form-group of Region -->
<div class="form-group">
<label for="region" class="col-sm-2 control-label">Region *</label>
<div class="col-sm-2">
<select id="region" class="form-control" name="region">
</select>
</div>
</div>
<!-- / .form-group of city -->
<div class="form-group">
<label for="city" class="col-sm-2 control-label">City *</label>
<div class="col-sm-2">
<select id="city" class="form-control" name="city">
</select>
</div>
</div>
<!-- / .form-group of rank -->
<div class="form-group">
<label for="zip" class="col-sm-2 control-label">Zip Code</label>
<div class="col-sm-1">
<input type="text" class="form-control" id="zip" placeholder="34600">
</div>
</div>
<!-- / .form-group of city -->
<div class="form-group">
<label for="address" class="col-sm-2 control-label">Hotel Address *</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="address" placeholder="Street name, number of building floor ...etc">
</div>
{{--<p class="label label-warning label-tag">Address should be in English</p>--}}
</div>
<!-- / .form-group of map -->
{{--GOOGLE MAPS--}}
<div class="form-group">
<label for="map" class="col-sm-2 control-label">Location *</label>
{{--Initialize Map--}}
<div class="col-sm-9">
<div id="map-canvas" class="" style="width: 100%; height: 350px !important;">
</div>
<p id="markerPosition" class="help-block"><i>Drag the pin to the position of the hotel </i></p>
<p id="lat" class="help-block">Latitude: 41.0694</p>
<p id="lng" class="help-block">Longitude: 29.0043</p>
<input id="latitude" type="hidden" value="37.7577">
<input id="longitude" type="hidden" value="-122.4376">
</div>
</div>
</div> <!-- End of Address Panel -->
<!-- Hotel tel -->
<div class="form-group">
<label for="country_code" class="col-sm-2 control-label">Country Code *</label>
<div class="col-sm-1">
<input type="text" class="form-control" id="country_code" name="country_code" placeholder="+90">
</div>
<label for="country_code" class="col-sm-1 control-label">Phone *</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="phone" name="phone" placeholder="(___) ___-____">
</div>
<label for="extension" class="col-sm-1 control-label">Extension</label>
<div class="col-sm-1">
<input type="text" class="form-control" id="extension" name="extension" placeholder="3">
</div>
</div>
<ht/>
<!-- / .form-group of status -->
<div class="form-group">
<label for="status" class="col-sm-2 control-label">Status *</label>
<div class="col-sm-2">
<select id="status" class="form-control" name="status" >
<option value="0">Suspended</option>
<option value="1" selected>Draft</option>
<option value="2">Published</option>
</select>
<p class="help-block helperQuote"><strong>Suspended:</strong>Trash,<strong>Draft:</strong>Default,<strong>Published:Online</strong></p>
</div>
<p class="label label-warning label-tag">Only Published Hotels will be online!</p>
</div>
{{--#if (Auth::user()->isAdmin())--}}
<!-- / .form-group of publisher -->
<div class="form-group">
<label for="publisher" class="col-sm-2 control-label">Publisher *</label>
<div class="col-sm-2">
<select id="publisher" class="form-control" name="publisher" >
#foreach($publishers as $publisher)
<option value="{{ $publisher->id }}">{{ $publisher->name }} ({{$publisher->type}}) </option>
#endforeach
</select>
</div>
</div>
{{--#endif--}}
<div class="form-group" style="margin-bottom: 0;">
<div class="col-sm-offset-2 col-sm-1">
<button type="submit" class="btn btn-lg btn-primary btn-flat"><span class="btn-label icon fa fa-plus-circle"></span> Add Hotel</button>
</div>
<div id="loader" class="col-sm-1" style="display: none;"><img src="/assets/images/plugins/bootstrap-editable/loading.gif" alt="loading regions" /></div>
</div> <!-- / .form-group -->
</div>
{!! Form::Close() !!}
The output is like this:
{"_token":"PWKknjx5S9u8m98ApGDXYKqaTyF7aFZDaye9uYPm","hotel_name":"City Loft","hotel_website":"http:\/\/www.cityloft.com.tr\/","facilities":"23","country":"6","region":"3344950","city":"783593","country_code":"+355","phone":"(123) 123-1231","extension":"3123","status":"1","publisher":"1"}
you forgot name attribute for Hotel Detail and Price and might be more
<textarea class="form-control" **name="hotel_detail"** id="hotel_details" placeholder="Short description, General information or Some Details about this Hotel" rows="3"></textarea>

Creating long forms in Bootstrap to be all one form, instead of multiple forms

I'd like to create a long form that is just all one form instead of a bunch of separate forms. Is this doable? I've reviewed all the Bootstrap Documentation and this seems to be the only way to do it. Does anyone know a way around this? Below is what I have, every field is a separate form, and I need it to be one.
<div class="row-container">
<div class="row">
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="claimnumber">Claim Number</label>
<input type="text" class="form-control" id="claimnumber" placeholder="">
</div>
</form>
</div>
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="insuredid">Insured ID</label>
<input type="text" class="form-control" id="insuredid" placeholder="">
</div>
</form>
</div>
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="claimnumber">Patient ID</label>
<input type="text" class="form-control" id="patientid" placeholder="">
</div>
</form>
</div>
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="lastname">Patient Last Name</label>
<input type="text" class="form-control" id="lastname" placeholder="">
</div>
</form>
</div>
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="lastname">Patient Last Name</label>
<input type="text" class="form-control" id="Text1" placeholder="">
</div>
</form>
</div>
</div>
</div>
<div class="datecontainer">
<div class="date1container">
<div class="dateheading">Service Date</div>
<div class="datebody">
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="lastname">Start</label>
<input type="text" class="form-control calendar" id="date" placeholder="00/00/0000">
</div>
</form>
</div>
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="lastname">End</label>
<input type="text" class="form-control calendar2" id="date2" placeholder="00/00/0000">
</div>
</form>
</div>
</div>
</div>
<div class="date2container">
<div class="dateheading">Import Date</div>
<div class="datebody">
<div class="field-wrapper">
<form class="form-inline">
<div class="form-group">
<label for="lastname">Start</label>
<input type="text" class="form-control calendar3" id="date3" placeholder="00/00/0000">
</div>
</form>
</div>
It works with just one form... check this
http://jsfiddle.net/7LChZ/1/show/
<div class="container">
<form class="form-inline">
<div class="row-container">
<div class="row">
<div class="field-wrapper">
<div class="form-group">
<label for="claimnumber">Claim Number</label>
<input type="text" class="form-control" id="claimnumber" placeholder="" />
</div>
</div>
<div class="field-wrapper">
<div class="form-group">
<label for="insuredid">Insured ID</label>
<input type="text" class="form-control" id="insuredid" placeholder="" />
</div>
</div>
<div class="field-wrapper">
<div class="form-group">
<label for="claimnumber">Patient ID</label>
<input type="text" class="form-control" id="patientid" placeholder="" />
</div>
</div>
<div class="field-wrapper">
<div class="form-group">
<label for="lastname">Patient Last Name</label>
<input type="text" class="form-control" id="lastname" placeholder="" />
</div>
</div>
<div class="field-wrapper">
<div class="form-group">
<label for="lastname">Patient Last Name</label>
<input type="text" class="form-control" id="Text1" placeholder="" />
</div>
</div>
</div>
</div>
<div class="datecontainer">
<div class="date1container">
<div class="dateheading">Service Date</div>
<div class="datebody">
<div class="field-wrapper">
<div class="form-group">
<label for="lastname">Start</label>
<input type="text" class="form-control calendar" id="date" placeholder="00/00/0000" />
</div>
</div>
<div class="field-wrapper">
<div class="form-group">
<label for="lastname">End</label>
<input type="text" class="form-control calendar2" id="date2" placeholder="00/00/0000" />
</div>
</div>
</div>
</div>
<div class="date2container">
<div class="dateheading">Import Date</div>
<div class="datebody">
<div class="field-wrapper">
<div class="form-group">
<label for="lastname">Start</label>
<input type="text" class="form-control calendar3" id="date3" placeholder="00/00/0000" />
</div>
</div>
</div>
</div>
</div>
</form>
</div>
What I change is, I remove all form tags and wrap them all with just one.
You should only use one <form> -tag and not multiple ones if you only need one form. You should place it after <div class="row">. And don't forget to close it correctly!