Bonjour,
Je me décide enfin a poster ma première question je tourne en rond
depuis trop longtemps.
Un script jquery s'exécute lorsque je sors d'un champ input. il s'agit d'une fonction AJAX qui va chercher le nom du dossier saisi et l'affiche sous le champ input ou affiche "erreur" si la saisie ne correspond à aucun projet (cela pas de soucis).
Je souhaiterais Donc (et je n'y arrive pas) que le script ne s’exécute qu'a la condition que l'on ne clique pas sur le lien html (loupe) car ce lien permet d'afficher une liste de projet correspondant à une saisie partielle du nom du projet.
formulaire:
code jquery
Modifié par machina78 (14 Jan 2012 - 15:32)
Je me décide enfin a poster ma première question je tourne en rond
depuis trop longtemps.
Un script jquery s'exécute lorsque je sors d'un champ input. il s'agit d'une fonction AJAX qui va chercher le nom du dossier saisi et l'affiche sous le champ input ou affiche "erreur" si la saisie ne correspond à aucun projet (cela pas de soucis).
Je souhaiterais Donc (et je n'y arrive pas) que le script ne s’exécute qu'a la condition que l'on ne clique pas sur le lien html (loupe) car ce lien permet d'afficher une liste de projet correspondant à une saisie partielle du nom du projet.
formulaire:
$tab=
"<INPUT type=\"text\" name=\"".$p."\" id=\"".$p."\" size=\"10\" value=\"".$$p."\" >".
"<a name=\"rech".$l."\" id=\"rech".$l."\" href=\"javascript:proj".$l.".popup(document.form_feuilledetemps.projet".$l.");\">".
"<img src=\"../../images/rechercher.png\" alt=\"".$alang['Projet']."\" title=\"".$alang['Projet']."\" border=0 align=top width=24 height=24 /></a>".
"<br>".
"<div id=\"resprojet".$l."\">".$desc_projet."</div>";
code jquery
$(document).ready( function() {
// détection de la saisie dans le champ de recherche
$("#projet1").blur(function(){ //
$field = $(this);
$retour= 'res'+this.name;
$long=this.name.length;
$requete='&c='+this.name.substring(0,1)+'&p='+$('#projet'+$l).val();
$('#results').html(''); // on vide les resultats
$('#ajax-loader').remove(); // on retire le loader
// on commence à traiter à partir du 2ème caractère saisie
if( $field.val().length > 1 )
{
// on envoie la valeur recherché en GET au fichier de traitement
$.ajax({
type : 'GET', // envoi des données en GET ou POST
url : 'ajax-search.php' , // url du fichier de traitement
data : 'q='+$(this).val()+$requete , // données à envoyer en GET ou POST
beforeSend : function() { // traitements JS à faire AVANT l'envoi
$field.after('<img src="ajax-loader.gif" alt="loader" id="ajax-loader" />'); // ajout d'un loader pour signifier l'action
},
success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
$('#ajax-loader').remove(); // on enleve le loader
$('#'+$retour).html(data); // affichage des résultats dans le bloc
}
});
}
});
});
Modifié par machina78 (14 Jan 2012 - 15:32)