我有一个小popover
窗口,我用这个函数调用:
$('.pop').popover({
html: true,
title: function() {
return $("#popover-head").html();
},
content: function() {
$('#hidden-input').val(this.id);
return $("#popover-content").html();
}
});
我有另一个JS函数验证复选框选择,确保至少选择了一个
// required checkboxes
var requiredCheckboxes = $("#car").find(':checkbox[required]');
requiredCheckboxes.change(function(){
if(requiredCheckboxes.is(':checked')) {
requiredCheckboxes.removeAttr('required');
}
else {
requiredCheckboxes.attr('required', 'required');
}
});
两者都正常工作,直到我在popover
窗口中使用复选框功能。
将这两者结合起来的任何解决方案?
编辑:
HTML:
<!-- Popup select table -->
<div id="popover-head" class="hide">
Select Animal
</div>
<div id="popover-content" class="hide">
<form method="post" id="car">
<fieldset>
<legend>What is Your Favorite Pet?</legend>
<input type="checkbox" name="animal" value="Cat" required/>Cats
<br />
<input type="checkbox" name="animal" value="Dog" required />Dogs<br />
<input type="checkbox" name="animal" value="Bird" required />Birds<br />
<input type="submit" value="Submit now" />
</fieldset>
</form>
</div>
答案 0 :(得分:0)
将复选框验证功能置于弹出回调中。
extension Array {
mutating func removeObject<T: Equatable>(value: T) {
for (index, item) in enumerate(self) {
if let item = item as? T where item == value {
removeAtIndex(index)
}
}
}
}
答案 1 :(得分:0)
问题可能是在运行第二个代码段时不存在复选框。
而是将您的更改侦听器委派给正文:
$("body").on('change', '#cars :checkbox[required]', function() { ... });