webForumDet fria alternativet

Problem med kod i javascript - form

3 svar · 286 visningar · startad av mariel

marielMedlem sedan okt. 2004390 inlägg
#1

Den här koden bör kontrollera 2 fält i mitt formulär:

function validacion(formulario) {
  var er_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|å|ä|ö|\s|\.|-)+$/ // bokstäver inkl. speciella bokstäver i sp och sv, '.'  '-' och mellanslag
  var er_comentario = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|å|ä|ö|\¡|\¿|\!|\?|\s|\.|-|:|)|(|"|'|[0-9\s\+\-])+$/ // samma som "er_nombre" och siffor och 2 speciella tecken som bara finns på sp.	
      	
   if(!er_nombre.test(formulario.nombre.value)) { 
     alert('Nombre incorrecto, por favor revisa') // Fel på fältet namn
     return false
   }   	  	

  if(!er_comentario.test(formulario.comentarios.value)) { 
   alert('Comentario incorrecto, por favor revisa') // Fel på fältet kommentar
   return false
  }   	

   return true
}

Här är formuläret:

<form ACTION="<%=MM_editAction%>" name="gbook-espanol" method="POST" onsubmit="return validacion(this)">
  <table border=0 align=center>
    <tr> 
     <td width="98"><font color=red><b>Nombre:</b></font></td>
     <td width="314"> 
      <input type="text" name="nombre" class="txt">
     </td>
    </tr>
    <tr> 
      <td width="98"><b>E-mail:</b></td>
      <td width="314"> 
        <input type="text" name="email" class="txt">
      </td>
     </tr>
     <tr> 
      <td width="98"><font color=red><b>Comentarios:</b></font></td>
       <td width="314"> 
         <textarea name="comentarios" cols="30" rows="5" class="txta"></textarea>
       </td>
      </tr>
    </table>
    <p align=center> 
     <input type="submit" name="Submit" value="Enviar" class="btn">
     <input type="reset" name="Reset" value="Borrar" class="btn">
    </p>
    <input type="hidden" name="MM_insert" value="true">
</form>

När jag testar genom att lämna fältet "kommentar" tomt, får jag följande error:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Field 'librovis.comentario' cannot be a zero-length string.

Vad gör jag fel?

PS: Jag använder Dreamweaver.

dectgapMedlem sedan sep. 20021 542 inlägg
#2

Det är inget JavaScript-fel, utan är ett databasfel på webbservern.

marielMedlem sedan okt. 2004390 inlägg
#3

jag tror att det finns något fel på koden, för den kontrollerar inte att fältet "kommentar" är tomt eller inte. Felet som jag får pga databasen är att "kommentar" inte får vara null och det försöker jag undvika med min "kontrollera-mitt-formulär" kod.

dectgapMedlem sedan sep. 20021 542 inlägg
#4

Din andra parentes i regexpen för att kontrollera kommentar-fältet ser ut så här

(|"|'|[0-9\s\+\-])

D.v.s:
ingenting eller " eller ' eller ...

Testa att ta bort det första vertikala strecket ( | ).

Eller gör det hela lite enklare:

var er_comentario = /^[a-z0-9áéíóúñüåäö¡¿!?\s.:"'+-]+$/i

Eller ännu lite enklare:

var er_comentario = /^[\w¡¿!?\s.:"'+-]+$/
Genererad på 372 ms · cache AV · v20260730165559-full.f96bc7eb