1

its my first post :) I want to select an option of the combobox, and depend of this option y want to print one label or other one. For example if I selected option->dni the label would be DNI: or if I selected option->nombre the label would be Nombre:

   <div class="campos">
    <div class="campo">
        <form:label path="buscarPor">Buscar Por:</form:label>
        <div>
            <select name="buscarPor" id="buscarPor">
                <option value="dni">DNI</option>
                <option value="nombre">Nombre</option>
                <option value="Departamento">Departamento</option>
                <option value="Área de Conocimiento">Área de Conocimiento</option>
            </select>
        </div>



    <script type="text/javascript">
    function cargarLabel(){
        var seleccionado = $(this).val();
        if(seleccionado == 'dni'){

            $('#seleccion').html('<div class="campo">'+'<form:label path="seleccion">DNI:</form:label>'+
                    '<div>'+'<form:input path="seleccion"/>'+'<form:errors path="seleccion"/>'+'</div>'+'</div>');
        }if(seleccionado == 'nombre'){

            $('#seleccion').html('<div class="campo">'+'<form:label path="seleccion">Nombre:</form:label>'+
                    '<div>'+'<form:input path="seleccion"/>'+'<form:errors path="seleccion"/>'+'</div>'+'</div>');
        }
    }

    $(function () {
        $('#buscarPor').change(cargarLabel);
    });

    </script>
    </div>

    <div class="campo">
    <form:label path="seleccion">??</form:label>
        <div>
            <form:input path="seleccion"/>
            <form:errors path="seleccion"/>
        </div>
    </div>
4

1 に答える 1

0

まず最初に、path自分の属性を別の<form:label path="buscarPor">Buscar Por:</form:label>ものに変更します。Springタグライブラリは同じ値の属性を生成し、それは選択タグidの属性と直接競合します。これが、現在のコードでjqueryがタグの代わりにタグを選択し、イベントをそれにバインドしてidいる理由です。labelselectchange

とはいえ、この問題に取り組む正しい方法については、このJSFiddleも参照してください。あなたのアプローチは冗長すぎると思います。if/elseブロックをすべて回避することで、自分に有利に働くことができます。

于 2012-11-28T19:14:51.880 に答える