diff --git a/README.md b/README.md index b7c6e64..153fdc2 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Returns a serialized form of a HTMLForm element. Output is determined by the ser arg | type | desc :--- | :--- | :--- -form | HTMLForm | must be an HTMLForm element +form | HTMLElement | must be an HTMLElement options | Object | optional options object #### options diff --git a/index.js b/index.js index 1ede440..058269f 100644 --- a/index.js +++ b/index.js @@ -33,7 +33,10 @@ function serialize(form, options) { var result = (options.hash) ? {} : ''; var serializer = options.serializer || ((options.hash) ? hash_serializer : str_serialize); - var elements = form && form.elements ? form.elements : []; + var elements = []; + if (form) { + elements = form.elements || form.querySelectorAll('input, textarea, select, button, datalist, keygen, output'); + } //Object store each radio and set if it's empty or not var radio_store = Object.create(null); diff --git a/test/index.js b/test/index.js index fd164eb..0533b2b 100644 --- a/test/index.js +++ b/test/index.js @@ -59,6 +59,18 @@ test('single element', function() { }); }); +test('single element in non-form element', function() { + var form = domify('