none
Post valor javascript asp mvc4 RRS feed

  • Pergunta

  • Galera, tenho um dropdown cascading, o primeiro drop é sem problema, o segundo está postando valor 0, e preciso de uma forma pra retornar o valor dele para enviar para o meu controller, como faço isso?

    ele lista tudo certinho, de acordo com o valor selecionado no primeiro, mas nao consigo "pegar" o valor selecionado no javascript para enviar pro controller.

        <select id="disciplina">
            <option value="0">Selecione...</option>
            @foreach (var disciplina in Model.Disciplinas)
            {
                <option value="@disciplina.DisciplinaId">@disciplina.NomeDisciplina</option>
            }
        </select>
    </p>
    <p id="selectAssunto">
        <select id="assunto"></select>
    </p>
    <script type="text/javascript" language="javascript">
        $(function () {
            $("#disciplina").change(function () {
                if (possuiDisciplinaSelecionado()) {
                    $("#selectAssunto").fadeIn();
                    carregarAssuntosDoDisciplina();
                } else {
                    limparAssuntosCarregados();
                    $("#selectAssunto").fadeOut();
    
                }
            });
        });
        function possuiDisciplinaSelecionado() {
            return $("#disciplina").val() != "0";
        }
        function carregarAssuntosDoDisciplina() {
            var url = "Home/ObterAssuntosDaDisciplina/" + $("#disciplina").val();
            $.getJSON(url, null, function (data) {
    
                limparAssuntosCarregados();
                $.each(data, function (indice, assunto) {
                    console.log(assunto.AssuntoId, assunto.NomeAssunto);
                    $("#assunto").append("<option value='" + assunto.AssuntoId + "'>" + assunto.NomeAssunto + "</option>");
                });
            });
        }
        function limparAssuntosCarregados() {
            $("#assunto").empty();
    
        }
    </script>


    quarta-feira, 19 de fevereiro de 2014 05:11

Respostas

  • Amigo, é assim, nao sei o nome correto para isso...

    ele lista os valores certinho como manda um dropdown em cascata, só que na hora que clico em submit, o valor do primeiro está indo, já o do segundo que está em javascript, vai com valor 0.

    preciso de uma forma de passar esse valor do javascript pro html, algo assim, entende?

    <select id="assunto"></select>

    coloque

    <select name="assunto" id="assunto"></select>
    agora vai dar certo resgatando assunto !!! sempre coloque o name o id é utilizado pelo JQuery na maioria das rotinas!


    Fulvio Cezar Canducci Dias

    quarta-feira, 19 de fevereiro de 2014 14:20

Todas as Respostas

  • Galera, tenho um dropdown cascading, o primeiro drop é sem problema, o segundo está postando valor 0, e preciso de uma forma pra retornar o valor dele para enviar para o meu controller, como faço isso?

    ele lista tudo certinho, de acordo com o valor selecionado no primeiro, mas nao consigo "pegar" o valor selecionado no javascript para enviar pro controller.

        <select id="disciplina">
            <option value="0">Selecione...</option>
            @foreach (var disciplina in Model.Disciplinas)
            {
                <option value="@disciplina.DisciplinaId">@disciplina.NomeDisciplina</option>
            }
        </select>
    </p>
    <p id="selectAssunto">
        <select id="assunto"></select>
    </p>
    <script type="text/javascript" language="javascript">
        $(function () {
            $("#disciplina").change(function () {
                if (possuiDisciplinaSelecionado()) {
                    $("#selectAssunto").fadeIn();
                    carregarAssuntosDoDisciplina();
                } else {
                    limparAssuntosCarregados();
                    $("#selectAssunto").fadeOut();
    
                }
            });
        });
        function possuiDisciplinaSelecionado() {
            return $("#disciplina").val() != "0";
        }
        function carregarAssuntosDoDisciplina() {
            var url = "Home/ObterAssuntosDaDisciplina/" + $("#disciplina").val();
            $.getJSON(url, null, function (data) {
    
                limparAssuntosCarregados();
                $.each(data, function (indice, assunto) {
                    console.log(assunto.AssuntoId, assunto.NomeAssunto);
                    $("#assunto").append("<option value='" + assunto.AssuntoId + "'>" + assunto.NomeAssunto + "</option>");
                });
            });
        }
        function limparAssuntosCarregados() {
            $("#assunto").empty();
    
        }
    </script>


    var url = "/Home/ObterAssuntosDaDisciplina/" + $("#disciplina").val();
    
    
    coloque sua variavel assim o Home faltou a barra na frente já é o primeiro erro!!! ve por favor se funciona


    Fulvio Cezar Canducci Dias

    quarta-feira, 19 de fevereiro de 2014 12:38
  • Amigo, é assim, nao sei o nome correto para isso...

    ele lista os valores certinho como manda um dropdown em cascata, só que na hora que clico em submit, o valor do primeiro está indo, já o do segundo que está em javascript, vai com valor 0.

    preciso de uma forma de passar esse valor do javascript pro html, algo assim, entende?

    quarta-feira, 19 de fevereiro de 2014 13:59
  • Amigo, é assim, nao sei o nome correto para isso...

    ele lista os valores certinho como manda um dropdown em cascata, só que na hora que clico em submit, o valor do primeiro está indo, já o do segundo que está em javascript, vai com valor 0.

    preciso de uma forma de passar esse valor do javascript pro html, algo assim, entende?

    <select id="assunto"></select>

    coloque

    <select name="assunto" id="assunto"></select>
    agora vai dar certo resgatando assunto !!! sempre coloque o name o id é utilizado pelo JQuery na maioria das rotinas!


    Fulvio Cezar Canducci Dias

    quarta-feira, 19 de fevereiro de 2014 14:20
  • Funcionou, coloquei <select name="assunto" id="assunto"></select> e funcionou, faltou o name="assunto", o controller nao conseguia identificar agora deu certo, obrigado
    quarta-feira, 19 de fevereiro de 2014 14:50