我在按钮点击事件上动态创建一个表的行。现在,如果我提交表单并且我的表单字段中有一些错误,我可以考虑动态创建总共7行,那我怎么会来知道创建了多少总行。
这就是我动态创建行的方式
counter=0;
$('.add-row').click(function(){
counter=counter+1;
$("#custom_fields").append("<tr><td><input type=text name='slab_name[]'/><span class='help-inline'>"+slab_name+"</span></td><td><input type='text' name='slab_start[]'/><span class='help-inline'>"+slab_start+"</span></td><td><input type='text' name='slab_end[]'/><span class='help-inline'>"+slab_end+"</span></td><td><input type='text' name='monthly_recurring_cost[]'/><span class='help-inline'>"+mrc+"</span></td><td><input type='text' name='data_in_mbs_slabs[]'/><span class='help-inline'>"+dim+"</span></td><td><input type='text' name='no_of_sms_slabs[]'/><span class='help-inline'>"+nos+"</span></td></tr>");
alert(counter);
});
这里的计数器正在工作,但在页面刷新时显然它显然会显示为零
答案 0 :(得分:0)
使用jQuery? 简单:
$('#custom_fields tr').length
计算&#34;计数&#34;在刷新时没有任何意义,除非你已经发布。
对于服务器端验证示例:
<?php
$count = $_POST['count'] ?: 0;
?>
<form id="validator" method="POST"><input type='hidden' value=$count;>
<button>validate</button>
</form>
<script>
var count = <?=$count?>;
// ... rest of your code ...
// and additional JS:
$('#validator').on('submit', () => {
$('#validator input').val($('#custom_fields tr').length);
})
</script>
答案 1 :(得分:0)
表包含tbody标签然后像这样使用
$('#tableId tbody tr').length;
或者像这样使用
$('#tableId tr').length;
答案 2 :(得分:0)
如果您不希望将行计数器发布到服务器并在页面刷新时获取它,则可以使用LocalStorage而不是普通的JavaScript变量,如下所示:
$('.add-row').click(function(){
// do your stuff here.
if (localStorage.counter) {
localStorage.counter = Number(localStorage.counter) + 1;
} else {
localStorage.counter = 1;
}
}
即使您刷新页面,也会将其存储在localStorage中。 localStorage
和sessionStorage
属性允许在Web浏览器中保存键/值对。此值也可在整个Web浏览器中使用。因此,您甚至可以在刷新页面时访问它。