|
1429 | 1429 |
|
1430 | 1430 | // single |
1431 | 1431 | val: function () { |
1432 | | - var val, data = null; |
| 1432 | + var val, data = null, self = this; |
1433 | 1433 |
|
1434 | 1434 | if (arguments.length === 0) { |
1435 | 1435 | return this.opts.element.val(); |
|
1448 | 1448 | this.updateSelection(data); |
1449 | 1449 | } else { |
1450 | 1450 | // val is an object. !val is true for [undefined,null,''] |
1451 | | - this.opts.element.val(!val ? "" : this.id(val)); |
1452 | | - this.updateSelection(val); |
| 1451 | + if (this.opts.initSelection) { |
| 1452 | + that = this; |
| 1453 | + this.opts.initSelection(this.opts.element.val(val), function(data){ |
| 1454 | + self.opts.element.val(!data ? "" : self.id(data)); |
| 1455 | + self.updateSelection(data); |
| 1456 | + self.setPlaceholder(); |
| 1457 | + }); |
| 1458 | + return; |
| 1459 | + } else { |
| 1460 | + this.opts.element.val(!val ? "" : this.id(val)); |
| 1461 | + this.updateSelection(val); |
| 1462 | + } |
1453 | 1463 | } |
1454 | 1464 | this.setPlaceholder(); |
1455 | 1465 |
|
|
1905 | 1915 | }); |
1906 | 1916 | this.updateSelection(data); |
1907 | 1917 | } else { |
1908 | | - val = (val === null) ? [] : val; |
1909 | | - // val is a list of objects |
1910 | | - $(val).each(function () { data.push(self.id(this)); }); |
1911 | | - this.setVal(data); |
1912 | | - this.updateSelection(val); |
| 1918 | + if (this.opts.initSelection) { |
| 1919 | + this.opts.initSelection(this.opts.element.val(val), function(newVal){ |
| 1920 | + $(newVal).each(function () { data.push(self.id(this)); }); |
| 1921 | + self.setVal(data); |
| 1922 | + self.updateSelection(newVal); |
| 1923 | + self.clearSearch(); |
| 1924 | + }); |
| 1925 | + return; |
| 1926 | + } else { |
| 1927 | + val = (val === null) ? [] : val; |
| 1928 | + // val is a list of objects |
| 1929 | + $(val).each(function () { data.push(self.id(this)); }); |
| 1930 | + this.setVal(data); |
| 1931 | + this.updateSelection(val); |
| 1932 | + } |
1913 | 1933 | } |
1914 | 1934 |
|
1915 | 1935 | this.clearSearch(); |
|
0 commit comments