Hé, vous les programmeurs m'ont été extrêmement utiles dans le passé, alors j'ai pensé que je poserais ma question ici, encore une fois. C'est probablement une solution simple, mais je suis nouveau pour JavaScript et Ajax. Ce que je travaille, c'est Ajax qui écrit dans un responseText indiquant "LOCATION NOT FOUND" s'il n'est pas trouvé quand un champ de texte perd le focus. Ce que j'aurais aimé faire, c'est d'empêcher le formulaire de se soumettre si ce texte est présent. Je sais comment empêcher le formulaire de soumettre si un champ caché a la valeur LOCATION NOT FOUND, donc je pensais qu'avoir JavaScript remplir le champ caché avec le responseText pourrait être la solution la plus facile? Je ne sais pas si cela va fonctionner ou comment s'y prendre.JavaScript/Ajax: remplir un champ caché
Voici ma position actuelle JS:
<script type="text/javascript">
<!--
function newXMLHttpRequest()
{
var xmlreq = false;
if (window.XMLHttpRequest)
{
xmlreq = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
alert("Error: Unable to create an XMLHttpRequest.");
}
}
return xmlreq;
}
function getLocation(locationrouting)
{
var getLocation= newXMLHttpRequest(); // sending request
getLocation.open("GET", "/PP?PAGE=GETLOCATIONNAME&ROUTINGNUM=" + locationrouting, false);
getLocation.send(null); // getting location
var dv = document.getElementById("location_div");
if (getlocation.responseText === 'LOCATION NOT FOUND')
{
dv.style.color = "red";
}
else
{
dv.style.color = "black";
}
dv.innerHTML = getLocation.responseText;
}
//-->
</script>
Voici la partie applicable du formulaire:
<form name="locationform" id="locationform" action="/PP?PAGE=POSTADDLOCATION" method="post">
<tr>
<td class="ajax_msg">
<div id="location_div">/div>
</td>
</tr>
<tr>
<td>
<div class="column1" id="locationrouting_div">
<p class="label_top">
*Routing Number</p>
<p class="field_top">
<input type="text" id="locationrouting" name="locationrouting" size="28" maxlength="9" onblur="getLocation(this.value);" /></p>
...
Merci à l'avance!
Convenu. Mais mon employeur veut que je le fasse au début. Le programmeur travaillant sur le back-end est mon patron, et il préfère que je trouve une solution. – Spockrates
Est-ce que votre solution est celle que je peux implémenter en JavaScript, ou doit-elle être configurée sur le serveur? – Spockrates
@ Spockrates il suffirait d'envoyer une autre requête ajax et de soumettre le formulaire si le texte de réponse! == "LOCATION NOT FOUND" –