webForumDet fria alternativet

Problem med kod i javascript - form

JavaScript

3 svar · 288 visningar · startad av mariel

Medlem sedan okt. 2004430 inlägg
Frågan#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.

Medlem sedan sep. 20021 655 inlägg
#2

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

Medlem sedan okt. 2004430 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.

Medlem sedan sep. 20021 655 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.:"'+-]+$/
255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)