guillaumepotier / Garlic.js

Automatically persist your forms' text and select field values locally, until the form is submitted.
http://garlicjs.org/
Other
2.36k stars 176 forks source link

Set absent select option. #110

Open LastRide opened 7 years ago

LastRide commented 7 years ago

Garlic.js could set value that not exists for <select> tag.

The bug is here - https://github.com/guillaumepotier/Garlic.js/blob/master/garlic.js#L191.

Case:

  1. Create form with
    <select>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
  2. Choose "1" option and submit form.
  3. Delete <option> with value "1" from form.
  4. Open form. You will see that <select> would be empty. Garlic.js would set "1" val to <select>.

And the bug is in the detectConflict() function. https://github.com/guillaumepotier/Garlic.js/blob/master/garlic.js#L221

It ignores first <option> value. If selected option would be the first and it's value would not be equals to option value - garlic would ignore this and set unexisting value to <select>

LastRide commented 6 years ago

Up :)