Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas K

Submit em form ajax com botão fora do formulario

Recommended Posts

Boa tarde galera , estou com o seguinte problema:

 

Quero dar um submit em um formulario porem o botão de submit está forma do formulario, portanto faria o submit com javascript.

este é o meu Form :


 

using (Ajax.BeginForm("Concluir","Ocorrencia",null,
                               new AjaxOptions
                               {
                                   OnSuccess = "OnSuccess",
                                   OnFailure = "OnFailure"
                               },
                               new { @id = "formConcluir" }
                               ))
                        {
                            Html.EditorFor(m => m.IdStatusOcorrencia, new { id = 3});
                        }
                    

 

e este é o helper que eu uso para gerar o botao com javascript para submeter formularios:

 

 

public static MvcHtmlString FormSimpleSubmit(this HtmlHelper htmlHelper,string linkText,string idForm, string cssClassButton = "")
        {

            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("<button OnClick='SubmitFormId{0}()' class='{1}'>{2}</button>",idForm,cssClassButton,linkText);
            sb.Append("<script>");
            sb.AppendFormat("function SubmitFormId{0}()",idForm);
            sb.Append("{");
            sb.AppendFormat("$('#{0}').submit();", idForm);
            sb.Append("}");
            sb.Append("</script>");
          

            return MvcHtmlString.Create(sb.ToString());
        }

 

 



a principio o botao e o script do formulario gera certinho, é feita a requisicao ajax porém na action do meu controller nao acontece nada, parei com o debug lá e nada.

 

esse é o form gerado pelo ajax.beginform


 

<form id="formConcluir" method="post" data-ajax-success="OnSuccess" data-ajax-failure="OnFailure" data-ajax="true" action="/caf/Ocorrencia/Concluir"></form>

 

 

 



Estava testando aqui, e o form desta maneira da errado:

 

@model  CafData.Ocorrencia
@using(Ajax.BeginForm("Concluir","Ocorrencia",
                               new 
                               {
                                    id = Model.IdOcorrencia
                               },
                               new AjaxOptions
                               {
                                   OnSuccess = "OnSuccess",
                                   OnFailure = "OnFailure",
                                   HttpMethod = "POST"
                               }))
                {
         
                    <button class="k-button">Concluír</button>
                }

 

mas se eu tiro o Using o post funciona:

 

@model  CafData.Ocorrencia
@Ajax.BeginForm("Concluir","Ocorrencia",
                               new 
                               {
                                    id = Model.IdOcorrencia
                               },
                               new AjaxOptions
                               {
                                   OnSuccess = "OnSuccess",
                                   OnFailure = "OnFailure",
                                   HttpMethod = "POST"
                               })
                {
         
                    <button class="k-button">Concluír</button>
                }

 

alguem sabe pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera encontrei mais ou menos o problema só que não consegui resolver ainda

 

 

Desta forma sem o using o post ocorre normalmente no meu controller

 

     @Ajax.BeginForm("Concluir", "Ocorrencia", new { id = Model.IdOcorrencia }, new AjaxOptions { HttpMethod = "POST"}))
     {
            <input type="submit" class="k-button" value="Concluír" />
     }

 

Porem junto com o meu botao de submit gera uma saida de texto conforme a linha abaixo

System.Web.Mvc.Html.MvcForm) { } 

 

 

 

Mas se eu coloco o using o post nao ocorre de jeito nenhum no meu controller, mas gera o botao de submit certinho na tela

        @using (Ajax.BeginForm("Concluir", "Ocorrencia", new { id = Model.IdOcorrencia }, new AjaxOptions { HttpMethod = "POST"}))
        {
            <input type="submit" class="k-button" value="Concluír" />
        }

 

 

 

Alguem ja passou por esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei com Ajax.actionlink tb e da o mesmo erro que ocorre no caso do using(ajax.beginform()), exibe o link certinho mas não da o POST,

detalhe que esqueci de comentar antes, ele não da o post e no console do firebug da o seguinte erro

 

"NetworkError: 500 Internal Server Error - http://localhost/caf/Ocorrencia/Concluir/40"

 

essa é a minha Ajax.ActionLink()

@Ajax.ActionLink("Concluir","Concluir","Ocorrencia",new {id = Model.IdOcorrencia},new AjaxOptions { HttpMethod = "POST"})

Alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.