我正在尝试计算表单中选中/选中的联系人复选框的数量。 下面的代码片段可能会出现什么问题,这实际上会使计数增加一倍。
HTML:
for line in old_file:
new_line = re.sub(email_regex, \
lambda x: hashing_func_email(x.group(1), x.group(3)), \
re.sub(ipaddr_regex, lambda x: hashing_func_ipaddr(x.group(0)), line))
print new_line
HTML表单非常庞大,在其他地方同时包含<div ng-hide ="onOff">
<span class="ctCheckBox" ng-class="{'searchDataCheckbox':searchView}">
<label class="atl-check-box-label">
<input type="checkbox" class="atl-check-box" ng-checked="iscontactChecked(info.userId)" ng-click ="grpAct()">
<span class="fntIcons appFtIcns"></span>
</label>
</span>
</div>
<div ng-hide ="!onOff">
<span class="ctCheckBox" ng-class="{'searchDataCheckbox':searchView}">
<label class="atl-check-box-label">
<input type="checkbox" class="atl-check-box" ng-checked="iscontactChecked(info.userId)" ng-click ="grpAct()">
<span class="fntIcons appFtIcns"></span>
</label>
</span>
</div>
和<span class="ctCheckBox" ..
。但是,只有上面的HTML代码才会显示在应用程序视图中。
JS:
<input type="checkbox" class="atl-check-box" ..
以上所有3个JS语句都会产生错误数量的选中复选框:
例如:如果正在选择应用程序视图中显示的仅有2个联系人,则显示4作为所选联系人数的计数,如果选择3个联系人,则显示6作为计数所选联系人的数量等等。
我错过了什么吗?
非常感谢任何帮助,提前谢谢!
答案 0 :(得分:0)
我找到了解决问题的方法。计数增加一倍的真正原因是使用了return render_template('index.html', prop1=var1, prop2=var2)
,而不是ng-hide
,这将显示DOM中的选定联系人,尽管它们被隐藏或显示并导致{ng-if
1}}找到相同复选框的2次出现(重复)。
angular.element('.ctCheckBox input:checked').length
现在已经解决了这个问题,因为复选框会在DOM上有条件地呈现,但是,应用程序初始加载的联系人行为列表会有一些其他的变化,这些变化将会被调查。