-1

3つの選択を持つテーブルがあり、2つは非表示で、1つは最初にあり、選択に応じてどちらかが表示されます. js は操作を呼び出してテーブルに新しい行を作成し、会計士を使用してそれを選択の ID に追加し、同じ呼び出しを回避しました。問題は、変更要求ではなく新しい行を作成すると、バグのみがマークされないことですこれが私のコードです

code html

 <script>    
    $(document).ready(function () {
        $("#estado").change(function () {
            if ($("#estado").val() == 2) {
                $("#sino").show();
                $("#sexo").hide();            
            }
            if ($("#estado").val() == 3) {
                $("#sino").hide();
                $("#sexo").show();
            }
    </script>
    <td>
    <select id="estado">
    <option value="1">Seleccione 1 opcion</option>
    <option value="2">Laboratorio</option>
    <option value="3">Datos Generales</option>
    </select>
    </td>
    //laboratorio
    <select name="sino" id="sino"style="display:none">
    <option value="1">Si </option>
    <option value="2">No</option>
    </select>
    datos generales
    <select name="sexo" id="sexo"  style="display:none">
    <option value="1">Masculino </option>
    <option value="2">Femenino</option>
    </select>

コードゴ.js

//manipulacion 
var cont=1
    $(document).ready(function () {
        $("#estado"+cont).change(function () {      
            if ($("#estado"+cont).val() == 2) {
                $("#sino"+cont).show();
                $("#sexo"+cont).hide();       
            }
            if ($("#estado"+cont).val() == 3) {
                $("#sino"+cont).hide();
                $("#sexo"+cont).show();
            } );
            var strNueva_Fila = '<tr>' +
'<td><label>Area Medica</label></td>' +
'<td><select id="estado' + cont +'"><option value="1">Seleccione 1 opcion</option><option value="2">Laboratorio</option><option value="3">Datos Generales</option><select></td>' +
'<td><select name="sino" id="sino'+cont'"style="display:none"><option value="1">Si </option><option value="2">No</option></select></td>' +
'<td id="columna1' + cont + '" ><select name="sexo'+cont'" id="sexo"  style="display:none"><option value="1">Masculino </option><option value="2">Femenino</option></select>'+
'<td><input type="button" value="+" class="clsAgregarFila"><input type="button" value="-" class="clsEliminarFila"></td>' +
'</tr>';
        cont++;
        var objTabla = $(this).parents().get(3);     
        $(objTabla).find('tbody').append(strNueva_Fila);      
        if (!$(objTabla).find('tbody').is(':visible')) {          
          $(objTabla).find('caption').click();
        }
    });
    $(document).on('click', '.clsEliminarFila', function () {     
       var objCuerpo = $(this).parents().get(2);
        if ($(objCuerpo).find('tr').length == 1) {
            if (!confirm('Esta es el única fila de la lista ¿Desea eliminarla?')) {
                return;
            }
        }      
        var objFila = $(this).parents().get(1);      
        $(objFila).remove();
    });
            );
4

1 に答える 1

0

html のような完全なコードはこちらをご覧ください。js をコピーして貼り付けるだけの問題です。私が行おうとしていることを理解していれば、新しい行が集まったときに最初に変更を加えるということです。

html

<html>
<head>
</head>
<body>
<script type="text/javascript" src="jss/jquery-1.9.0.min.js"></script>
    <script type="text/javascript" src="manipulacion.js"></script>
<script>    
    $(document).ready(function () {
        $("#estado").change(function () {
            if ($("#estado").val() == 2) {
                $("#sino").show();
                $("#sexo").hide();            
            }
            if ($("#estado").val() == 3) {
                $("#sino").hide();
                $("#sexo").show();
            }
            });
            });
    </script>
    <table>
    <tr>
    <td>
    <select id="estado">
    <option value="1">Seleccione 1 opcion</option>
    <option value="2">Laboratorio</option>
    <option value="3">Datos Generales</option>
    </select>
    </td>
    <td>
    <!-- //laboratorio -->
    <select name="sino" id="sino"style="display:none">
    <option value="1">Si </option>
    <option value="2">No</option>
    </select>
    </td>
    <td>
    <!-- //datos generales -->
    <select name="sexo" id="sexo"  style="display:none">
    <option value="1">Masculino </option>
    <option value="2">Femenino</option>
    </select>
    </td>
    <td><input type="button" value="+" class="clsAgregarFila"></td>
    </tr>
    </table>
    </body>
    </html>

manipulacion.js

//manipulacion 
var contLin=1
    $(document).ready(function () {
        $("#estado"+contLin).change(function () {      
            if ($("#estado"+contLin).val() == 2) {
                $("#sino"+contLin).show();
                $("#sexo"+contLin).hide();       
            }
            if ($("#estado"+contLin).val() == 3) {
                $("#sino"+contLin).hide();
                $("#sexo"+contLin).show();
            }
}           );



});


$(document).ready(function(){
    //evento que se dispara al hacer clic en el boton para agregar una nueva fila
    $(document).on('click','.clsAgregarFila',function(){
        //almacenamos en una variable todo el contenido de la nueva fila que deseamos
        //agregar. pueden incluirse id's, nombres y cualquier tag... sigue siendo html

        var strNueva_Fila='<tr>'+
'<td><select id="estado'+contLin+'"><option value="1">Seleccione 1 opcion</option><option value="2">Laboratorio</option><option value="3">Datos Generales</option></select></td>' +
'<td><select name="sino'+contLin+'" id="sino"style="display:none"><option value="1">Si </option><option value="2">No</option></select></td>'+
'<td> <select name="sexo'+contLin+'" id="sexo"  style="display:none"><option value="1">Masculino </option><option value="2">Femenino</option></select><td>'+
'<td><input type="button" value="+" class="clsAgregarFila"><input type="button" value="-" class="clsEliminarFila"></td>'+
'</tr>';

contLin++;

        var objTabla=$(this).parents().get(3);


        $(objTabla).find('tbody').append(strNueva_Fila);


        if(!$(objTabla).find('tbody').is(':visible')){

            $(objTabla).find('caption').click();
        }
    });


    $(document).on('click','.clsEliminarFila',function(){

        var objCuerpo=$(this).parents().get(2);
            if($(objCuerpo).find('tr').length==1){
                if(!confirm('Esta es el única fila de la lista ¿Desea eliminarla?')){
                    return;
                }
            }


        var objFila=$(this).parents().get(1);

            $(objFila).remove();
    });



});
于 2013-02-20T23:05:28.990 に答える