2013-02-19 73 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