I have a problem in a form where I collect data with input and I want it to only collect digits instead of letters.
I am using an IndexedDb database and I keep it in the same as null
because of the type of object store that I have created.
In the input I'm using pattern to specify that it's only numeric but it does not work for me.
HTML:
<form name="f1">
<div class="field">
<label for="name">NºHistoria</label>
<input type="text" id="dni1" placeholder="dni" required/>
</div>
<div class="field half">
<label for="email">Enter MD</label>
<input type="text" id="md" placeholder="MD" pattern="[0-9]{0,}"required/><br>
</div>
</form>
<a href class="button submit" onclick="addprueba(dni1);">Save</a>
Javascript:
function addprueba() {
//
//pruebas
var active2 = dataBase.result; //conector con la base de datos
var data1 = active2.transaction(["pacientes"], "readwrite"); //array ,modo de transacción
var objectDb = data1.objectStore("pacientes");
var index1 = objectDb.index("by_dni");
var request1 = index1.get(calcMD5(document.querySelector("#dni1").value));//index1.get(calcMD5(document.querySelector("#dni1").value));//md5(document.querySelector("#dni1").value);//
request1.onsuccess = function () {
md1 = parseFloat(document.querySelector("#md").value);
slv1 = parseFloat(document.querySelector("#slv").value);
var result = request1.result;
tipo1 = result.tipo;
//alert('hola'+tipo1);
if( md1 >16.33 && tipo1 == "O" )//octopus
{
//alert('estoy aquí');
slv1 = slv1 + ((md1-16.33)/0.84);
//alert('hola'+slv1);
//alert(slv1);
}else if( md1 <-17.35 && tipo1 =="H"){ //humfrey
slv1 = slv1 + ((md1+17.35)/0.84)
//alert(md1);
//alert(slv1);
}
var active = dataBase.result; //conector con la base de datos
var data = active.transaction(["pruebas"], "readwrite"); //array ,modo de transacción
var objectDb1 = data.objectStore("pruebas");
var index = objectDb1.index("by_dni");
var request = index.get(calcMD5(document.querySelector("#dni1").value));//
//index.get(calcMD5(document.querySelector("#dni1").value));
//aquí le pasaría el dni recogido en la otra página y le añadiría
var request = objectDb1.put({
md: document.querySelector("#md").value,
slv: slv1,
mes: document.querySelector("#mes").value,
anyo: document.querySelector("#anyo").value,
orde: parseFloat(( parseFloat(document.querySelector("#mes").value))+(12* parseFloat((document.querySelector("#anyo").value)-2000))), dni:calcMD5(document.querySelector("#dni1").value)//calcMD5(document.querySelector("#dni1").value)
});
request.onerror = function (e) {
alert(request.error.name + '\n\n' + request.error.message);
};
data.oncomplete = function (e) {
document.querySelector('#md').value = '';
document.querySelector('#slv').value = '';
document.querySelector('#mes').value = '';
document.querySelector('#anyo').value = '';
alert('The medical test has been created correctly');
//passdata(document.querySelector("#dni1").value);
};
};
}