diff --git a/lib/Mojo/DOM.pm b/lib/Mojo/DOM.pm
index 3934480..8e45028 100644
--- a/lib/Mojo/DOM.pm
+++ b/lib/Mojo/DOM.pm
@@ -382,8 +382,11 @@ sub _val {
return $self->text if $self->type eq 'textarea';
# "select"
- return [map { $_->{value} } $self->find('option[selected]')->each]
- if $self->type eq 'select';
+ if ($self->type eq 'select') {
+ my @values = map { $_->{value} } $self->find('option[selected]')->each;
+ return undef unless @values;
+ return \@values;
+ }
# "option"
return $self->{value} || $self->text if $self->type eq 'option';
@@ -873,7 +876,8 @@ Extract values from C<form>, C<input>, C<select>, C<option> and C<textarea>
elements or return C<undef>.
In case of C<select> this method will find all the C<option>s that is selected
-and return them in an array-ref with zero or more elements.
+and return them in an array-ref with one or more elements. Returns C<undef> if
+no options has been selected.
In case of C<form> it will fetch the values from all the child field elements
that is checked, selected or has a value and return them as in a hash-ref