Validare Codice con W3C Xhtml 1.0 Strict

  • Creatore Discussione Creatore Discussione mooug
  • Data di inizio Data di inizio

mooug

Utente Attivo
15 Feb 2007
49
0
0
Ho un form che inizia cosi:

Codice:
<form method="post" action="scrivimi2.php" name="mioform1" id="mioform1" onkeyup="highlight(event)" onsubmit="return (xxx1() &amp;&amp; controlla1())">

ma DTD Strict non riconosce name="mioform1"

avendo uno script esterno se tolgo "name..." non viene piu richiamato, il codice inizia cosi:

function insert_tag(codice,argomento2){
var tarea=document.mioform1.messaggio;tarea.focus();
if(document.selection){
...

per me è la parte in verde da modificare...ma come?
 
Ciao :)

Togli l'attributo name al tag <form>, è sufficiente l'attributo id per identificarlo da javascript.
Dopodichè, modifica con la parte in blu la tua linea in verde:

var tarea=document.forms.mioform1.messaggio;

:byebye:
 
Ciao :)

Togli l'attributo name al tag <form>, è sufficiente l'attributo id per identificarlo da javascript.
Dopodichè, modifica con la parte in blu la tua linea in verde:

var tarea=document.forms.mioform1.messaggio;

:byebye:

Funziona ma ho notato che si sono disattivati i controlli js del form escono solo quelli in php
 
Non so come è strutturato il tutto, ma ricorda che devi aggiungere nello script JS la parte
document.forms.mioform1.
davanti ai nomi di tutti i campi.

Esempio:
tarea.focus();
diventa
document.forms.mioform1.tarea.focus();


Lo script completo è questo che deve lavorare solo nel campo "messaggio":

Codice:
function insert_tag(codice,argomento2){
var tarea=document.forms.mioform1.messaggio;
tarea.focus();
if(document.selection){                //--------> IE
var selezionato=document.selection;
var rng=selezionato.createRange();
if(rng!=null && (selezionato.type=='Text' || selezionato.type=='None')){
messaggio_trg=rng.text;
}
if(rng!=null && tarea.createTextRange){
tarea.caretPos=rng.duplicate();
}
var caretPos=tarea.caretPos;
if(argomento2){                // --------> colore
caretPos.text='['+codice+'='+argomento2+']'+messaggio_trg+'[/'+codice+']';
}
else{
caretPos.text='['+codice+']'+messaggio_trg+'[/'+codice+']';
}
 }
else if(tarea.selectionStart || tarea.selectionStart=='0'){       //-------- > FF
if(tarea.selectionStart!=tarea.selectionEnd){
var inizio_sel=tarea.selectionStart;
var fine_sel=tarea.selectionEnd;
var messaggio_trg=(tarea.value).substring(inizio_sel,fine_sel);
}
else{
var messaggio_out=prompt('Inserisci il testo da formattare','');
if(messaggio_out!=undefined && messaggio_out!=null && messaggio_out!=''){
messaggio_trg=messaggio_out;
}
else{
messaggio_trg='';
}	
 }
if(messaggio_trg!='' && messaggio_trg!=null){
var inizio_sel=tarea.selectionStart;
var fine_sel=tarea.selectionEnd;
var inizio=(tarea.value).substring(0,inizio_sel);
var fine=(tarea.value).substring(fine_sel,tarea.textLength);
if(argomento2){              //---------> colore
tarea.value=inizio+'['+codice+'='+argomento2+']'+messaggio_trg+'[/'+codice+']'+fine;
}
else{
tarea.value=inizio+'['+codice+']'+messaggio_trg+'[/'+codice+']'+fine;
}
 }
  }
else{              //--------> altri Browser
var messaggio_out=prompt('Inserisci il testo da formattare','');
if(messaggio_out!=undefined && messaggio_out!=null && messaggio_out!=''){
tarea.value+='['+codice+']'+messaggio_out+'[/'+codice+']';
}
else{
tarea.value+='';
}
 }
tarea.focus();
}
 
Ok, allora prova a fare quanto ti suggerivo prima:

Non ho capito bene, questo è lo script che dovrebbe attivarsi con l'onsubmit ma che invece non va, dove modifico?:

Codice:
function controlla1(){ 
var f = document.mioform1;
//.value == "" rende il campo obbligatorio
if(f.nome.value == ""){
f.nome.style.backgroundColor='#e2e2e2'
alert("Inserire il Nome");
f.nome.focus();
return false;
}
if((f.nome.value.indexOf("<") != -1) || (f.nome.value.indexOf(">") != -1) || (f.nome.value.indexOf("\\") != -1)){
f.nome.style.backgroundColor='red'
f.nome.style.color='white' 
alert("I caratteri  <  > \\  non sono ammessi");
f.nome.focus();
f.nome.style.color=""
return false;
}
//Valida l'Email  (Campo obbligatorio)                                           
if(f.suoemail.value == "" || f.suoemail.value.charAt(0) == " "){
f.suoemail.style.backgroundColor='#e2e2e2'
alert("Inserire l'Email");
f.suoemail.focus();
return false;
}                                                                          
//valida pippo@email.{2,4}//pip.po@email.{2,4}//pip_po@email.{2,4}//pip-po@email.{2,4}   [email protected]
var reg = new RegExp("^([-_.#$&a-z0-9]+)[@][a-z]+(\\.[-_#$&a-z0-9]{2,})*(\\.[a-z]{2,4})$");
if(!f.suoemail.value.match(reg)){ 
f.suoemail.style.backgroundColor='#e2e2e2'
alert("Inserire un' Email valida");
f.suoemail.focus();
return false;
}
//(Campo non obbligatorio)
if((f.citta.value.indexOf("<") != -1) || (f.citta.value.indexOf(">") != -1) || (f.citta.value.indexOf("\\") != -1)){
f.citta.style.backgroundColor='red'
f.citta.style.color='white' 
alert("I caratteri  <  >  \\  non sono ammessi");
f.citta.focus();
f.citta.style.color=""
return false; 
}
//(Campo obbligatorio)
if(f.messaggio.value == ""){
f.messaggio.style.backgroundColor='#e2e2e2'
alert("Inserire il Messaggio");
f.messaggio.focus();
return false;
}
if((f.messaggio.value.indexOf("<") != -1) || (f.messaggio.value.indexOf(">") != -1) || (f.messaggio.value.indexOf("\\") != -1)){
f.messaggio.style.backgroundColor='red'
f.messaggio.style.color='white' 
alert("I caratteri  <  >  \\  non sono ammessi");
f.messaggio.focus();
f.messaggio.style.color=""
return false;
}
return true;
}
 
In teoria dovrebbe bastare l'aggiunta della parte in blu nella prima riga:
Codice:
function controlla1(){ 
var f = document[B][COLOR="Blue"].forms[/COLOR][/B].mioform1;
//.value == "" rende il campo obbligatorio
if(f.nome.value == ""){
f.nome.style.backgroundColor='#e2e2e2'
alert("Inserire il Nome");
f.nome.focus();
return false;
}
if((f.nome.value.indexOf("<") != -1) || (f.nome.value.indexOf(">") != -1) || (f.nome.value.indexOf("\\") != -1)){
f.nome.style.backgroundColor='red'
f.nome.style.color='white' 
alert("I caratteri  <  > \\  non sono ammessi");
f.nome.focus();
f.nome.style.color=""
return false;
}
//Valida l'Email  (Campo obbligatorio)                                           
if(f.suoemail.value == "" || f.suoemail.value.charAt(0) == " "){
f.suoemail.style.backgroundColor='#e2e2e2'
alert("Inserire l'Email");
f.suoemail.focus();
return false;
}                                                                          
//valida pippo@email.{2,4}//pip.po@email.{2,4}//pip_po@email.{2,4}//pip-po@email.{2,4}   [email protected]
var reg = new RegExp("^([-_.#$&a-z0-9]+)[@][a-z]+(\\.[-_#$&a-z0-9]{2,})*(\\.[a-z]{2,4})$");
if(!f.suoemail.value.match(reg)){ 
f.suoemail.style.backgroundColor='#e2e2e2'
alert("Inserire un' Email valida");
f.suoemail.focus();
return false;
}
//(Campo non obbligatorio)
if((f.citta.value.indexOf("<") != -1) || (f.citta.value.indexOf(">") != -1) || (f.citta.value.indexOf("\\") != -1)){
f.citta.style.backgroundColor='red'
f.citta.style.color='white' 
alert("I caratteri  <  >  \\  non sono ammessi");
f.citta.focus();
f.citta.style.color=""
return false; 
}
//(Campo obbligatorio)
if(f.messaggio.value == ""){
f.messaggio.style.backgroundColor='#e2e2e2'
alert("Inserire il Messaggio");
f.messaggio.focus();
return false;
}
if((f.messaggio.value.indexOf("<") != -1) || (f.messaggio.value.indexOf(">") != -1) || (f.messaggio.value.indexOf("\\") != -1)){
f.messaggio.style.backgroundColor='red'
f.messaggio.style.color='white' 
alert("I caratteri  <  >  \\  non sono ammessi");
f.messaggio.focus();
f.messaggio.style.color=""
return false;
}
return true;
}
Prova e facci sapere, ora scusa ma devo scappare!
 
Corretto, risolto, l'ho messo a tutti gli script che l'onsubmit richiamava
 

Discussioni simili