2013-02-19 82 views
-1

我有一个表与3选择两个隐藏和一个在开始,并根据选择出现一个或另一个,我使用一个。 js调用操作为表创建新行,还使用会计将它添加到select的id并避免相同的调用,问题是当我创建一个新行时,并且更改请求不会仅标记bug什么也不做 这里是我的代码错误与jQuery隐藏和显示

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> 

codigo的.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(); 
    }); 
      ); 
+0

您还没有足够的代码,以帮助的。你应该使一个工作jsFiddle或类似的显示你的问题,所以其他人可以帮助。 http://jsfiddle.net/ – 2013-02-20 01:51:10

回答

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(); 
    }); 



}); 
+0

删除这个答案并更新你的原始问题。 – 2013-02-20 23:06:47