Io la trovo fastidiosa una ricerca di questo tipo e preferisco sempre un bottone di conferma comunque penso che tu debba far partire la chiamata asincrona dall'evento onkeypress/onclick a seconda degli input.
Metti che hai un form con più parametri di ricerca:
codice:
<form name="form1" id="form1">
<input type="text" name="text1" onKeyPress="caricaAjaxDaForm('contenuto-dinamico')">
<input type="checkbox" name="check1" onclick="caricaAjaxDaForm('contenuto-dinamico')">
<select name="select1" onchange="caricaAjaxDaForm('contenuto-dinamico')">
<option value='0'></option>
<option value='1'>Ciccio</option>
<option value='2'>Panzone</option>
</select>
</form>
prepari innanzitutto una funzione che ti costruisca la stringa parametri (che sostituisce la submit) e che richiami la tua funzione ajax passandoglieli. Tipo questa:
codice:
function caricaAjaxDaForm(myid) {
// variabili di funzione
var
param = "",
obj_form = document.form1;
for(i=0;i<obj_form.elements.length;i++) {
switch(obj_form.elements[i].type) {
case "text":
case "hidden":
case "select-one":
param += obj_form.elements[i].name + "=" + obj_form.elements[i].value + "&";
break;
case "checkbox":
param += obj_form.elements[i].name + "=" + obj_form.elements[i].checked + "&";
break;
}
}
if (i>0) param = param.substr(0, param.length - 1);
return caricaAjax(param,myid);
}
La division mydiv è quella che devi passargli per riempirla col risultato.
La funzione caricaAjax crea l'oggetto xmlhttprequest, se ne hai bisogno leggiti il tutorial di html.it
In questo modo che ad ogni evento di quegli input farai la tua chiamata con tutti i filtri aggiornati.
Spero ti sia stato utile ma se c'è un metodo migliore per realizzarlo, ben venga!