1

这是我的第一篇文章 :) 我想选择组合框的一个选项,并且取决于这个选项,你想打印一个标签或另一个标签。例如,如果我选择 option->dni,则标签将为 DNI:或者如果我选择 option->nombre,则标签将为 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相同值的属性,会直接和id你的select标签的属性冲突。这就是为什么在您当前的代码中,jquery 选择您的label标签而不是select标签并将change事件绑定到它的原因。

也就是说,还请查看此JSFiddle以了解解决此问题的正确方法。我认为您的方法过于冗长,您可以通过避免所有这些 if/else 块来帮自己一个忙。

于 2012-11-28T19:14:51.880 回答