:checkbox, :email and other text based inputs support for form-dialog

This commit is contained in:
David Botton 2021-02-24 16:39:02 -05:00
parent d16f17d0d7
commit 61853feccb
4 changed files with 39 additions and 4 deletions

View file

@ -382,6 +382,19 @@ group called NAME."))
(cc:query (connection-id obj) (cc:query (connection-id obj)
(format nil "$('input:radio[name=~A]:checked').val()" (format nil "$('input:radio[name=~A]:checked').val()"
name))) name)))
;;;;;;;;;;;;;;;;;;;;
;; checkbox-value ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric checkbox-value (clog-obj name)
(:documentation "Returns t or nil on the selected checkbox button."))
(defmethod checkbox-value ((obj clog-obj) name)
(js-on-p (cc:query (connection-id obj)
(format nil "$('input:checkbox[name=~A]:checked').val()"
name))))
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;
;; select-value ;; ;; select-value ;;
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;

View file

@ -1412,7 +1412,7 @@ with a-list of field name to value if confirmed or nil if canceled."
((eq (third l) :select) ((eq (third l) :select)
(format nil (format nil
"<div><label class='w3-text-black'><b>~A</b></label>~ "<div><label class='w3-text-black'><b>~A</b></label>~
<select class='w3-select w3-border' name='~A-~A'>~A</select>" <select class='w3-select w3-border' name='~A-~A'>~A</select></div>"
(first l) html-id (second l) (first l) html-id (second l)
(format nil "~{~A~}" (format nil "~{~A~}"
(mapcar (lambda (s) (mapcar (lambda (s)
@ -1421,12 +1421,13 @@ with a-list of field name to value if confirmed or nil if canceled."
(fourth l))))) (fourth l)))))
((eq (third l) :radio) ((eq (third l) :radio)
(format nil (format nil
"<div><label class='w3-text-black'><b>~A</b></label>~A" "<div><label class='w3-text-black'><b>~A</b></label>~A</div>"
(first l) (first l)
(format nil "~{~A~}" (format nil "~{~A~}"
(mapcar (lambda (s) (mapcar (lambda (s)
(format nil (format nil
"<div><input type=radio name='~A-~A' id='~A-~A-~A' value='~A'>~ "<div><input type=radio class='w3-radio' name='~A-~A'~
id='~A-~A-~A' value='~A'> ~
<label for='~A-~A-~A'>~A</label></div>" <label for='~A-~A-~A'>~A</label></div>"
html-id (second l) html-id (second l)
html-id (second l) (second s) html-id (second l) (second s)
@ -1434,6 +1435,22 @@ with a-list of field name to value if confirmed or nil if canceled."
html-id (second l) (second s) html-id (second l) (second s)
(first s))) (first s)))
(fourth l))))) (fourth l)))))
((eq (third l) :checkbox)
(format nil
"<div><input class='w3-check' type='checkbox' ~
name='~A-~A' id='~A-~A'> ~
<label class='w3-text-black' for='~A-~A'>~
<b>~A</b></label>~
</div>"
html-id (second l) html-id (second l)
html-id (second l)
(first l)))
((third l)
(format nil
"<div><label class='w3-text-black'><b>~A</b></label>~
<input class='w3-input w3-border' type='~A' name='~A-~A' id='~A-~A'></div>"
(first l) (third l)
html-id (second l) html-id (second l)))
(t (t
(format nil (format nil
"<div><label class='w3-text-black'><b>~A</b></label>~ "<div><label class='w3-text-black'><b>~A</b></label>~
@ -1508,6 +1525,8 @@ with a-list of field name to value if confirmed or nil if canceled."
(select-value win name)) (select-value win name))
((eq (third l) :radio) ((eq (third l) :radio)
(radio-value win name)) (radio-value win name))
((eq (third l) :checkbox)
(checkbox-value win name))
(t (t
(name-value win name)))))) (name-value win name))))))
fields))) fields)))

View file

@ -494,6 +494,7 @@ embedded in a native template application.)"
(default-value generic-function) (default-value generic-function)
(value generic-function) (value generic-function)
(radio-value generic-function) (radio-value generic-function)
(checkbox-value generic-function)
(select-value generic-function) (select-value generic-function)
(name-value generic-function) (name-value generic-function)
(pattern generic-function) (pattern generic-function)

View file

@ -82,11 +82,13 @@
("Brown" "brown") ("Brown" "brown")
("Green" "green") ("Green" "green")
("Other" "other"))) ("Other" "other")))
("Send Mail" "send-mail" :checkbox)
("Name" "name") ("Name" "name")
("Address" "address") ("Address" "address")
("City" "city") ("City" "city")
("State" "st") ("State" "st")
("Zip" "zip")) ("Zip" "zip")
("E-Mail" "email" :email))
(lambda (results) (lambda (results)
(alert-dialog obj results)) (alert-dialog obj results))
:height 550)) :height 550))