ajouter types aux inputs

front
Gwenael PLANCHON 1 year ago
parent e88c62da1d
commit 6fc8a0daef

@ -10,7 +10,26 @@ export default{
//envoyer le form en JSON //envoyer le form en JSON
fetch("localhost"+"/"+this.endpoint, {method:"POST", body:JSON.stringify(Object.fromEntries(donnees)), headers: {"Content-Type": "application/json"}}) fetch("localhost"+"/"+this.endpoint, {method:"POST", body:JSON.stringify(Object.fromEntries(donnees)), headers: {"Content-Type": "application/json"}})
//sans le JSON.stringify et Object.fromEntries ca fait une requete en Content-Disposition //sans le JSON.stringify et Object.fromEntries ca fait une requete en Content-Disposition
} },
typeDeChamp: function(champ){ //TODO mettre cette fonction dans un fichier commun
switch(typeof champ){
case 'number':
case 'bigint':
return "number"
case 'string':
return this.estUneDate(champ) ? "date" : "text"
case 'boolean':
return "checkbox"
case 'symbol':
case 'undefined':
case 'object':
case 'function':
return "hidden" //TODO : implementer le reste
}
},
estUneDate: function(date) { //TODO mettre cette fonction dans un fichier commun
return new Date(date) != "Invalid Date";
},
} }
} }
</script> </script>
@ -19,8 +38,8 @@ export default{
<form id="formajouter" @submit.prevent> <form id="formajouter" @submit.prevent>
<div> <div>
<fieldset v-for="nomColonne in Object.keys(champs??{})"> <fieldset v-for="nomColonne in Object.keys(champs??{})">
<label :for="nomColonne+'_temp_add_form'">{{nomColonne}}</label> <label v-show="typeDeChamp(champs[nomColonne])!='hidden'" :for="nomColonne+'_temp_add_form'">{{nomColonne}}</label>
<input class="form-control" :id="nomColonne+'_temp_add_form'" :aria-label="nomColonne" :name="nomColonne"/> <input class="form-control" :type="typeDeChamp(champs[nomColonne])" :id="nomColonne+'_temp_add_form'" :aria-label="nomColonne" :name="nomColonne"/>
</fieldset> </fieldset>
</div> </div>

Loading…
Cancel
Save