2016-03-07 61 views
2

我觉得他很简单,但我不知道为什么代码不工作。jquery限制添加部分视图

我动态地在我的视图中使用分部视图添加文本框,但我想添加行数的限制添加。以下是我的代码,但它不限制要添加的行数。

请帮助,在此先感谢。

@section Scripts { 
@Scripts.Render("~/bundles/jquery") 
<script> 
    $("#btnAdd").on('click', function() { 
     var counter = 0; 

     if (counter > 5) { 
      alert("Limit Exceeds"); 
      return false; 
     } 
     else { 
      $.ajax({ 
       async: false, 
       url: '/Employee/Add' 
      }).success(function (partialView) { 
       $('#Add > tbody').append("<tr>" + partialView + "</tr>"); 
      }); 
     } 

     counter++; 
    }); 

    function deleteRow() { 
     var par = $(this).parent().parent(); 
     par.remove(); 
    }; 
    $("#Add").on("click", ".BtnRemove", deleteRow); 
</script> } 
+4

问题是,每次单击“btnAdd”时'counter'总是被设置为'0',所以这就是为什么你的代码总是进入'else'块。 – ekad

+0

哦,是的,谢谢.. – makoto

+0

@ekad我在我的解决方案中添加了一个选项,以减少计数器一个,如果你想仍然能够添加行,如果一个已被删除,使计数器值低于5。 –

回答

2

先给变量全球范围内,如果你想,当你删除行以减少数,您可以通过一个,当你删除它降低了柜台。

var counter = 0;//<-- give the variable global scope 

$("#btnAdd").on('click', function() { 


     if (counter > 5) { 
      alert("Limit Exceeds"); 
      return false; 
     } 
     else { 
      $.ajax({ 
       async: false, 
       url: '/Employee/Add' 
      }).success(function (partialView) { 
       $('#Add > tbody').append("<tr>" + partialView + "</tr>"); 
      }); 
     } 

     counter++; 
    }); 

    function deleteRow() { 
     var par = $(this).parent().parent(); 
     par.remove(); 

     //Remove comment to decrease counter by one 
     //counter--; 

    }; 
    $("#Add").on("click", ".BtnRemove", deleteRow);