Newsgroup: it.comp.lang.javascript
Titolo: Inibire action di un form

Ciao,
ho creato un form che punta a pippo.php. pero alla pressione di un tasto
vengono fatti dei controlli aui dati contenuti in una textbox. Qualora i
dati siano errati con alert esce un messaggio di errore. Purtroppo però si
viene mandati alla pagina php; cosa che io non vorrei.
Se c'è l'errore deve rimanere nella pagina in cui è per far correggere i
dati e successivamente alla pressione del bottone rifare il controllo e, se
giusto, mandare a pippo.php.
Ciao,
Michele
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 viene mandati alla pagina php; cosa che io non vorrei.
Questo tasto esattamente cos'č?
Normalmente puoi usare form onsubmit='return testdati()'>
Se la function testdati restituisce false la form non viene processata.
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.
--

Questo è il codice che ho scritto, ma non ho capito ome impostare il
discorso che mi hai fatto (anche se lo ho capito):
<SCRIPT LANGUAGE="JavaScript">
function price() {
var dT=document.offer;
var prices=Number(dT.priced.value);
var orig_price=Number(dT.hdprice.value);
if (prices<90000) {
var aumento=1000;
var dif=prices-orig_price;
if (dif<aumento) {
alert("La cifra deve essere aumentata di almeno 1000 crediti");
var offer=orig_price+aumento;
dT.priced.value=offer;
}
}
if (prices>90000) {
var aumento=(prices*10)/100;
var dif=prices-orig_price;
if (dif<aumento) {
alert("La cifra deve essere aumentata almeno del 10%");
var offer=orig_price+aumento;
dT.priced.value=offer;
}
}
}
</SCRIPT>
<?echo "<form action=\"mercato/sell.php\" method=\"post\" name=\"offer\">
<input name=\"priced\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"hdprice\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"id\" type=\"hidden\" value = \"4\" size=\"15\"><br><br>
<input name=\"gooffer\" type=\"submit\" value=\"Offri\" OnClick=\"price()\"
size=\"10\">
</form>
";
?>
Mi puoi aiutare?


 size=\"10\">
Io non uso mai input submit; prova onclick='return price()' per vedere se
blocca il submit se la function gli restituisce false, altrimenti devi
spostare il controllo nella form (form.....onsubmit='return price()'
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.
--

 spostare il controllo nella form (form.....onsubmit='return price()'
Ho provato in entrambi i modi ma va sempre a sell.php.


 Ho provato in entrambi i modi ma va sempre a sell.php.
posta quello che hai fatto
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.
--

Posto solo la parte relativa al form, l'altra è sempre la stessa:
1-
<? echo "<form action=\"mercato/sell.php\" onclick='return price()'
method=\"post\" name=\"offer\">
<input name=\"priced\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"hdprice\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"id\" type=\"hidden\" value = \"4\" size=\"15\"><br><br>
<input name=\"gooffer\" type=\"submit\" value=\"Offri\" OnClick=\"return
price()\" size=\"10\">
</form>
";
?>
2-
<? echo "<form action=\"mercato/sell.php\" method=\"post\" name=\"offer\">
<input name=\"priced\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"hdprice\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"id\" type=\"hidden\" value = \"4\" size=\"15\"><br><br>
<input name=\"gooffer\" type=\"submit\" value=\"Offri\" OnClick='return
price()' size=\"10\">
</form>
";
?>
Spero di aver fato bene,


 price()\" size=\"10\">
Qua togli l'onclick
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.
--

Ho fatto cosě ma niente da fare; se vuoi posto l'intero codice (non č
molto):
<? echo "<form action=\"mercato/sell.php\" onclick='return price()'
method=\"post\" name=\"offer\">
<input name=\"priced\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"hdprice\" type=\"text\" value = \"1000\" size=\"15\">
<input name=\"id\" type=\"hidden\" value = \"4\" size=\"15\"><br><br>
<input name=\"gooffer\" type=\"submit\" value=\"Offri\" size=\"10\">
</form>
";
?>


 Michele
Scusa ho messo OnSubmit e non OnClick..


> molto):
[CUT]
Secondo me questo codice funziona correttamente (con onsubmit anziché
onclick).
Hai messo i vari return false; dove servono nella function price() ?
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.
--

> Hai messo i vari return false; dove servono nella function price() ?
Scusa se ti faccio diventare matto ma non ho messo nulla nella funzione
price().
<SCRIPT LANGUAGE="JavaScript">
function price() {
var dT=document.offer;
var prices=Number(dT.priced.value);
var orig_price=Number(dT.hdprice.value);
if (prices<90000) {
var aumento=1000;
var dif=prices-orig_price;
if (dif<aumento) {
alert("La cifra deve essere aumentata di almeno 1000 crediti");
var offer=orig_price+aumento;
dT.priced.value=offer;
}
}
if (prices>90000) {
var aumento=(prices*10)/100;
var dif=prices-orig_price;
if (dif<aumento) {
alert("La cifra deve essere aumentata almeno del 10%");
var offer=orig_price+aumento;
dT.priced.value=offer;
}
}
} onclick='return price()'
</SCRIPT>
Nel frattempo provo,


Ho provato, ho aggiunto return false; nell'if che fa il controllo e sembra
funzionare, ti ringrazio infinitamente. Sperando di non avere problemi con
questo codice ti saluto,
