I can bind checkbox
This commit is contained in:
@@ -20,6 +20,13 @@ verbs = {
|
||||
}
|
||||
|
||||
|
||||
class DoNotSendCls:
|
||||
pass
|
||||
|
||||
|
||||
DoNotSend = DoNotSendCls()
|
||||
|
||||
|
||||
class TestableElement:
|
||||
"""
|
||||
Represents an HTML element that can be interacted with in tests.
|
||||
@@ -802,7 +809,8 @@ class TestableControl(TestableElement):
|
||||
|
||||
def _send_value(self):
|
||||
if self._input_name and self._support_htmx():
|
||||
return self._send_htmx_request(data={self._input_name: self.value})
|
||||
value = {} if self.value is DoNotSend else {self._input_name: self.value}
|
||||
return self._send_htmx_request(data=value)
|
||||
return None
|
||||
|
||||
|
||||
@@ -824,16 +832,18 @@ class TestableCheckbox(TestableControl):
|
||||
return self.fields[self._input_name] == True
|
||||
|
||||
def check(self):
|
||||
self.fields[self._input_name] = True
|
||||
self.fields[self._input_name] = "on"
|
||||
return self._send_value()
|
||||
|
||||
def uncheck(self):
|
||||
self.fields[self._input_name] = False
|
||||
self.fields[self._input_name] = DoNotSend
|
||||
return self._send_value()
|
||||
|
||||
def toggle(self):
|
||||
self.fields[self._input_name] = not self.fields[self._input_name]
|
||||
return self._send_value()
|
||||
if self.fields[self._input_name] == "on":
|
||||
return self.uncheck()
|
||||
else:
|
||||
return self.check()
|
||||
|
||||
|
||||
class TestableTextarea(TestableControl):
|
||||
|
||||
Reference in New Issue
Block a user