none
Ajax ASP.NET MVC RRS feed

  • Pergunta

  • Estou aprendendo asp.net mvc, e estou com uma duvida que não consigo resolver.

    Possuo um campo de busca que utiliza ajax para retornar os resultados.

    Esta tudo funcionando perfeitamente, porém gostaria de substituir esse botão submit por um evento javascript onchange. Como consigo fazer isso?

    Vlw

                @using (Ajax.BeginForm("Find", "Home", new AjaxOptions { UpdateTargetId = "divProdutos" }))
                {
                    <table style="border-color: #111111; width: 100%; text-align: left; border: 0;">
                        <tr>
                            <td style="text-align: left; width: 100%; background-color: #edf2f2;">
                                <table style="width: 100%; text-align: left;">
                                    <tr style="text-align: center;">
                                        <td>
                                            @Html.TextBox("txtBusca", "", new { MaxLength = 40, @class = "busca_input", @style = "text-align: left; width: 95%;" })
                                        </td>
                                        <td style="text-align: left; width: 5%;">
                                            <input type="submit" value="Ok" title="Procurar" alt="Ok" />
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </table>
                }


    • Editado MTSousa quarta-feira, 14 de novembro de 2012 18:14
    quarta-feira, 14 de novembro de 2012 18:09

Respostas

  • Você faz assim:

    @Html.TextBox("txtBusca", "", new { MaxLength = 40, @class = "busca_input", @style = "text-align: left; width: 95%;", onchange = "$(this.form).submit()" })


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    • Marcado como Resposta MTSousa quarta-feira, 14 de novembro de 2012 19:08
    quarta-feira, 14 de novembro de 2012 18:50

Todas as Respostas

  • Coloca assim no elemento que fará o change:

    <input type="text" onchange="$(this.form).submit()" />

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    quarta-feira, 14 de novembro de 2012 18:27
  • A minha duvida é justamento onde colocar o evento onchange, pois o textbox é montado pelo @Html.TextBox
    quarta-feira, 14 de novembro de 2012 18:47
  • Você faz assim:

    @Html.TextBox("txtBusca", "", new { MaxLength = 40, @class = "busca_input", @style = "text-align: left; width: 95%;", onchange = "$(this.form).submit()" })


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    • Marcado como Resposta MTSousa quarta-feira, 14 de novembro de 2012 19:08
    quarta-feira, 14 de novembro de 2012 18:50
  • Não funcionou, continua funcionando apenas com o botão submit... Troquei $(this.form).submit() por um alert() e continuou não funcionando, ele não invoca esse evento de forma alguma.
    quarta-feira, 14 de novembro de 2012 18:55
  • Quais scripts você está incluindo?

    Está incluindo no topo ou embaixo da tela?

    Está dando algum erro no console do navegador?

    Como está sendo renderizado o html deste TextBox?


    http://www.linkedin.com/pub/murilo-kunze/44/191/455


    • Editado Murilo Kunze quarta-feira, 14 de novembro de 2012 18:59
    quarta-feira, 14 de novembro de 2012 18:58
  • Scripts: 

        <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/modernizr-2.5.3.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

    Cara ta resolvido, valew msm... O problema estava no ie9, testei no crhome e deu certo. Obrigado

    quarta-feira, 14 de novembro de 2012 19:08