我有一个用水瓶做的表格。它包括3个复选框和9个其他字段。如果勾选三个复选框中的一个,其中7个字段将被禁用。你知道吗
这里只是复选框的一个小示例,复选框被勾选时该字段被禁用,如果复选框被勾选,optionIf类使所选字段成为可选字段:
class OptionalIf(Optional):
def __init__(self, otherFieldName, *args, **kwargs):
self.otherFieldName = otherFieldName
#self.value = value
super(OptionalIf, self).__init__(*args, **kwargs)
def __call__(self, form, field):
otherField = form._fields.get(self.otherFieldName)
if otherField is None:
raise Exception('no field named "%s" in form' % self.otherFieldName)
if bool(otherField.data):
super(OptionalIf, self).__call__(form, field)
在我的班级里:
holiday = BooleanField('Holiday?', id="holiday", validators=[Optional()])
start_time = TimeField(label='Start Time', id='timepick1', format='%H:%M', validators=[OptionalIf('holiday'), OptionalIf('holiday_noAddedHours'), OptionalIf('sick')])
holiday_noAddedHours
和sick
是其他复选框字段,它们都有自己的ID:holidayNAH
和sick
。你知道吗
由于有七个字段需要禁用,因此我必须在脚本中包含以下内容:
document.getElementById('holiday').onchange = function(){
document.getElementById('timepick1').disabled = this.checked;
document.getElementById('timepick2').disabled = this.checked;
....
}
document.getElementById('holidayNAH').onchange = function(){
document.getElementById('timepick1').disabled = this.checked;
document.getElementById('timepick2').disabled = this.checked;
....
}
然后另一个是sick
ID
我想知道是否有可能缩短这个,而不是有3 document.getElementById
和七行在里面,禁用字段,如果复选框?我知道只有一个ID是不可能的,因为它getElementById
会得到第一个元素,所以我该怎么做呢?你知道吗
谢谢你的建议。你知道吗
不如在你想更改的id列表上加一个for循环。例如:
相关问题 更多 >
编程相关推荐