Ho uno script che mi permette di modificare del testo al volo in una pagina; lo trasforma in un'input text e lo salva tramite un secondo file php o asp.
Quando clicco sul testo,dopo aver modificato la frase, lo script fa il suo dovere ed all'evento onblur (ovvero quando clicco con il tasto su un'altra parte della pagina o quando premo TAB) effettua la modifica.
Però vorrei che la modifica fosse effettuata anche quando premo invio dopo aver modificato la frase ma se premo invio viene processato il form non effettuando la modifica.
per semplificare oltre a trascrivere il codice allego il file in formato zip.
codice:
<script type="text/javascript" language="javascript">
var http_request = false;
function makeRequest(getvar) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
//http_request.overrideMimeType('text/xml');
// See note below about this line
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function(){
scrivi(getvar);
}
http_request.open('POST', 'edit2.asp', true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
postvar="campo="+getvar+"&value="+eval("document.forms.dinamicform."+getvar+".value");
http_request.send(postvar);
}
function scrivi(getvar) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById(getvar).innerHTML = "<a onclick=\"change(this,'"+getvar+"')\">"+eval("document.forms.dinamicform."+getvar+".value")+"</a>";
document.getElementById("result").innerHTML = http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}
}
function change(link,textname){
//link.innerText e link.text sono stessa cosa, c'è differenza tra ie e firefox
if(link.innerText){testovecchio=link.innerText}else{testovecchio=link.text}
//riscrivo il contenuto del div
document.getElementById(textname).innerHTML="<input type='text' autocomplete='off' name='"+textname+"' value='"+testovecchio+"' onBlur=\"makeRequest(\'"+textname+"\')\" > ";
}
</script>
<form name="dinamicform">
<div id="Prezzo"><a onclick="change(this,'Prezzo')">Clicca per modificare</a></div>
</form>
<div id="result"></div>