diff options
| author | Kenjiro NAKAYAMA | 2013-12-01 14:21:53 +0100 |
|---|---|---|
| committer | Lars Magne Ingebrigtsen | 2013-12-01 14:21:53 +0100 |
| commit | 9dd99753de8a2937de5e858f9c5c38bf37b7a0ba (patch) | |
| tree | fb20c051af92baf3b5b22127bb6c2b7e3b0485a2 | |
| parent | ab6dea82bfc48652f130e193fe434deba54306b1 (diff) | |
| download | emacs-9dd99753de8a2937de5e858f9c5c38bf37b7a0ba.tar.gz emacs-9dd99753de8a2937de5e858f9c5c38bf37b7a0ba.zip | |
Support <optgroup> tags in <select> forms.
* net/eww.el (eww-tag-select): Support <optgroup> tags in <select>
forms.
Test case:
<html>
<head><title>SELECT TEST</title></head>
<body>
<form method="POST" action="./dummy.php">
<input type="text" name="text1">
<input type="submit" name="btn1" value="val1">
<select>
<optgroup label="group 1">
<option value="a">Value A</option>
<option value="b">Value B</option>
</optgroup>
<optgroup label="group 2">
<option value="c">Value C</option>
<option value="d">Value D</option>
</optgroup>
</select>
</form>
</body>
</html>
Fixes: debbugs:15860
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/net/eww.el | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e9c8b528f65..11c3ae4db3d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-12-01 Kenjiro NAKAYAMA <nakayamakenjiro@gmail.com> | ||
| 2 | |||
| 3 | * net/eww.el (eww-tag-select): Support <optgroup> tags in <select> | ||
| 4 | forms. | ||
| 5 | |||
| 1 | 2013-12-01 Lars Magne Ingebrigtsen <larsi@gnus.org> | 6 | 2013-12-01 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 7 | ||
| 3 | * net/eww.el (eww-restore-history): Update the window title after | 8 | * net/eww.el (eww-restore-history): Update the window title after |
diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 70fd5641756..5b1fc0831d6 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el | |||
| @@ -737,8 +737,14 @@ appears in a <link> or <a> tag." | |||
| 737 | :eww-form eww-form)) | 737 | :eww-form eww-form)) |
| 738 | (options nil) | 738 | (options nil) |
| 739 | (start (point)) | 739 | (start (point)) |
| 740 | (max 0)) | 740 | (max 0) |
| 741 | (dolist (elem cont) | 741 | opelem) |
| 742 | (if (eq (car (car cont)) 'optgroup) | ||
| 743 | (dolist (groupelem cont) | ||
| 744 | (unless (cdr (assq :disabled (cdr groupelem))) | ||
| 745 | (setq opelem (append opelem (cdr (cdr groupelem)))))) | ||
| 746 | (setq opelem cont)) | ||
| 747 | (dolist (elem opelem) | ||
| 742 | (when (eq (car elem) 'option) | 748 | (when (eq (car elem) 'option) |
| 743 | (when (cdr (assq :selected (cdr elem))) | 749 | (when (cdr (assq :selected (cdr elem))) |
| 744 | (nconc menu (list :value | 750 | (nconc menu (list :value |