Olá gente, tenho um controller em Java que pega um modelAtributte do meu HTML quando dou um POST. Ai ele faz o que tem que fazer e redireciona pra um outra pagina.
Nesse html tenho um javascript que pega o evento onclick(); de um button. Esse evento chama uma função que faz o tratamento dos campos (ex. mostra uma mensagem ao usuario informando que ele deixou algum campo em branco).
Até ai tudo bem. O meu problema é que ele percorre o javascript e não bloqueia a tela quando o usuário nao preenche os campos. Tipo: o usuario nao preenche os campos, a app mostra a mensagem pra ele falando que ele esqueceu de preencher algo (até aqui td bem), mas ele nao bloqueia a tela, ele simplesmente entra no meu controller e redireciona pra outra tela...
Poderia colocar um trecho de código onde essa sua function foi utilizada? Assim fica mais fácil tentar te ajudar.
[]s
L
Luana_Lobao
Ah sim claro, desculpe.
o HTML está assim:
<bodystyle="overflow:hidden;"><form:formmethod="POST"name="programform"modelAttribute="program"onsubmit="return validField()"><divid="Wrapper"><divclass="bg1"><divclass="bg2"><!-- Content --><divid="content"><!-- Cadastro --><divid="cadastro"><!-- Table of Contents --><divid="table"><divid="tableContents"><!-- form alert --><divid="alertProgram"style="display: none; "><!-- visibility: hidden; --><pclass="formAlert"><span><strong>ThefieldACRONYMorDESCRIPTIONisempty!</strong></span></p></div><!-- form alert ends --><tableid="tablesize"class="config"width=42%><tbody><tr><tdwidth="73%"class="esquerda"><label><strong>ACRONYM:</strong></label><br/><form:inputid="acronym"path="abbr"size="30"maxlength="30"/><br/><br/></td></tr><tr><tdwidth="27%"class="esquerda"><label><strong><br/>Employee:</strong></label><br/><form:selectpath="employee.employeeId"itemValue="employeeId"itemLabel="name"items="${employeeList}"/><br/><br/></td></tbody></table><divid="descript"><label><strong>DESCRIPTION:</strong></label><br/><form:textareaid="descrip"path="description"cssClass="txtDescript"/></div></div></div><!--End of Table of Contents--></div><!-- Fim Cadastro --><divid="ResultFooter"><divid="button"style="padding: 110px 0 2px 20px"><ahref="main.html"><spanclass="btnGlobal"><inputtype="submit"id="postSaveDraft"value="Save"></input></span></a></div></div><!--End of Content--></div></div></div></form:form>
tentei fazer um teste com o seu código aqui (exceto pelo fato de não ter criado um servidor para receber a requisicao) e notei que um trecho pode estar te atrapalhando. No seu html:
Experimente tirar o href do seu link (troque por “#”)… pode ser por isso que a página esteja sendo enviada… você chegou a debugar e verificar se a requisição estava realmente sendo enviada para o seu controller mesmo dando a mensagem? Se você clicar no botão deve redirecionar independente da sua função, pois vai valer a url do link… se você der enter acredito que o seu código funcione, pois aí vai valer o retorno da sua função…
Faça esses testes e verifique se funciona… qualquer coisa posta ai denovo…
Espero ter ajudado.
[]s
L
Luana_Lobao
Sim, estava enviando a requisição sim. Ttirei o main.html como falou, e ele nao capturou evento algum do botão, simplesmente ficou na tella de cadastro de programa. Esse main.html está em uma outra .jsp, que é controlada por um outro controller. Esse controller carrega redireciona sempre pra tela de projeto. Tá uma salada esse MVC aqui. Só queria algo que pudesse bloquear esse request. Hum…