Validator cliente sem submit

Ao utilizar o código abaixo não estou conseguindo validar no servidor se alguem tiver uma dica responda.
Uma outra dúvida é que quando utilizo a validação no cliente eu só consigo chamar se eu tiver um botão submit onsubmit=“return validateUserForm(this);”?

<h1>Cadastro de Usuários</h1> 
    <html:form action="/user" > <!-- onsubmit="return validateUserForm(this);" -->
      	<table border="0" cellspacing="0" cellpadding="0">
        		<tr> 
          			<td class="labels">Nome</td>
          			<td><html:text property="vo.name" styleClass="campo"/></td>
        		</tr>
				<tr>
					<td class="labels">Preço</td>
					<td><html:text property="vo.price" styleClass="campo"/></td>
				</tr>		
        		<tr> 
          			<td> </td>
          			<td><html:submit property="ok"/></td>
        		</tr>
	  </table>
	   <table border="0" cellpadding="0" cellspacing="0">
	   <tr><td>
<logic:messagesPresent>
     <bean:message key="errors.header"/>
     <ul>
     <html:messages id="error">
          <li><bean:write name="error"/></li>
     </html:messages>
     </ul><hr>
</logic:messagesPresent>
</td></tr>


      </table>
    </html:form>

</html:html>
<form-bean name="userForm" type="org.apache.struts.validator.DynaValidatorActionForm">
			<form-property name="vo" type="com.stn.pda.vo.UserVo"/>

<action path="/user" name="userForm" type="com.stn.pda.action.User" scope="session"				
		input="/usuario.jsp" validate="true"> 
<forward name="sucesso" path="/wel.jsp" redirect="false" />
DynaValidatorActionForm f = (DynaValidatorActionForm) form;
		UserVo cadastrarUsuarioForm = (UserVo) f.get("vo");		
        System.out.println(cadastrarUsuarioForm.getName());		
		return mapping.findForward("sucesso");

Muito Obrigado

Não, a validação do lado cliente só vai funcionar, se antes do form ser submetido, o navegador chamar o método validateNomeDoActionForm(this), o que normalmente é feito colocando a chamada do método dentro do onsubmit do form. Além disso você tem que adicionar a tag <x:javascript/> pra ele poder gerar o código da validação.

O seu código ficaria assim:

 &lt;h1&gt;Cadastro de Usuários&lt;/h1&gt; 
     &lt;html:form action="/user" onsubmit="return validateUserForm(this);"&gt;
       	&lt;table border="0" cellspacing="0" cellpadding="0"&gt;          
         		&lt;tr&gt; 
           			&lt;td class="labels"&gt;Nome&lt;/td&gt;
           			&lt;td&gt;&lt;html:text property="vo.name" styleClass="campo"/&gt;&lt;/td&gt;
         		&lt;/tr&gt;
 				&lt;tr&gt;
 					&lt;td class="labels"&gt;Preço&lt;/td&gt;
 					&lt;td&gt;&lt;html:text property="vo.price" styleClass="campo"/&gt;&lt;/td&gt;				
 				&lt;/tr&gt;		
         		&lt;tr&gt; 
           			&lt;td&gt; &lt;/td&gt;
           			&lt;td&gt;&lt;html:submit property="ok"/&gt;&lt;/td&gt;		  
         		&lt;/tr&gt;				
 	  &lt;/table&gt;
 	   &lt;table border="0" cellpadding="0" cellspacing="0"&gt;		
 	   &lt;tr&gt;&lt;td&gt;
 &lt;logic:messagesPresent&gt;
      &lt;bean:message key="errors.header"/&gt;
      <ul>
      &lt;html:messages id="error"&gt;
           <li>&lt;bean:write name="error"/&gt;</li>
      &lt;/html:messages&gt;
      </ul>&lt;hr&gt;
 &lt;/logic:messagesPresent&gt;
 &lt;/td&gt;&lt;/tr&gt;
 
 
       &lt;/table&gt;
     &lt;/html:form&gt;
 
&lt;html:javascript formName="UserForm"/&gt;

 &lt;/html:html&gt;

Tudo bem disso eu sei para validar do lado do cliente, pois o que eu quero saber é se eu não usar um botão submit como eu valido? E a outra dúvida é que não está validando no servidor, pois da forma que está o código deveria estar sendo validado no servidor pois quando uso DynaValidatorForm funciona.

Obrigado.

.

para validar em outro botao faça o seguinte:

<html:button onclick=“if (!validateUserForm(this)){alert(‘erro’);}”>Validar</html:button>

<html:button onclick=“if (!validateUserForm(this)){alert(‘erro’);}”>Validar</html:button>[/quote]

Ao chamar o validateUserForm(this) gera um erro na pagina de js.

Boa tarde a todos

Estou com uma dúvida quando faço a validação no cliente, é que sempre que fazemos as validações usamos
<html:form action="/user" onsubmit="return validateUserForm(this);">

Porém agora não estou mais usando onsubmit e sim uma imagem

<html:img src="images/bt_enviar.gif" width="54" height="22"  

Já tentei chamar a função no onclick mais apresenta erro.

Se alguem poder me ajudar muito obrigado.

Tente usar a tag html:image, pois ela faz um submit no form.