-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Input box for ui-select multiple ALWAYS forcing text entry at new line #1980
Comments
Hi, Thanks for the issue, maybe you could have a look where the problem is coming from and make a PR? |
I didn't find the actual cause yet, but it got introduced in 0.19.7. Reverting back to 0.19.5 fixes the issue. Update: I believe I found the culprit: 7ad4ef1 |
+1 |
Oh I haven't seen it was a recent issue, I commented the older one. Here is the fix I found. In the code of the updateIfVisible = function(containerWidth) {
if (containerWidth === 0) {
return false;
}
var inputWidth = containerWidth - input.offsetLeft;
if (inputWidth < 50) inputWidth = containerWidth;
ctrl.searchInput.css('width', inputWidth+'px');
return true;
} However it cannot be done since the input is already on the second line. By reducing the input first and enlarging it to the rest of the block, it works: updateIfVisible = function(containerWidth) {
if (containerWidth === 0) {
return false;
}
ctrl.searchInput.css('width', '50px');
setTimeout(function(){
var inputWidth = Math.max(50, containerWidth - input.offsetLeft - 10);
ctrl.searchInput.css('width', inputWidth+'px');
}, 0);
return true;
} |
also, there is a height problem for multiple. the input's height is shorter when it is empty, at least for bootstrap theme. you can compare multiple input's height with non-multiple |
+1, same problem with chrome |
Changing this line https://github.com/angular-ui/ui-select/blob/master/dist/select.js#L839 |
As far as I can tell the root issue is that ui-select is relying on the element's Previously, ui-select compensated by subtracting an extra 10px from the container width:
But that was removed in 7ad4ef1 Even if that was change was undone, I believe it would still break for anyone who wanted to set a larger custom padding on their element. I think the best solution is probably to take into account the actual computed padding values from |
input is not too big or too small - it takes the whole remaining part of the current row. If smaller than the min input width - goes to the next row closes angular-ui#1980, possibly angular-ui#2010
input is not too big or too small - it takes the whole remaining part of the current row. If smaller than the min input width - goes to the next row closes angular-ui#1980, possibly angular-ui#2010
Finally got a clue why the "-10" was removed. In not multiple case, this -10 will shrink from 10 pixels the input (so visually, the whole select shrinks from 10 pixels). I'm now using:
|
None of solutions actually fix the problem. I think the problem is much deeper since it does not provide enough flexibility. User should be able to access drop-down list by clicking ANY space on input box. If you decrease the input width as suggested, generally ends up with less interaction area even if it may not force text entry in new line. |
…tiple" control (missing a valid sourcemap because of wrecked build environment)
…dth for "multiple" control (missing a valid sourcemap because of wrecked build environment)
- Account for paddings on input container in case box-sizing: border-box is set. - Added some tests for this case Closes angular-ui#1980.
- Account for paddings on input container in case box-sizing: border-box is set. - Added some tests for this case Closes angular-ui#1980.
- Account for paddings on input container in case box-sizing: border-box is set. - Added some tests for this case Closes angular-ui#1980.
- Account for paddings on input container in case box-sizing: border-box is set. - Added some tests for this case Closes angular-ui#1980.
I don't know what the browser support requirements are but this is an easy fix for flexbox (IE10+) the current structure for multi-select is (not exact names)
change it to
and give it the following css
this will allow you to let css handle it automagically and not have js setting the width at all I also agree with the statement above that clicking anywhere in the box should open the dropdown and focus the input |
I would also expect to be able to click anywhere in the box to search. We can achieve this easily with basic HTML, without any complicated calculations. Just wrap
And add the following CSS to make it look like the whole thing is an input:
PR: #2057 |
Can we get a fix for this merged? This really breaks the functionality of this library. edit: I personally think that a combination of @andreiho and @abdallamohamed solutions should be merged. |
Any Update on this? |
I've come to the conclusion that this library is dead. Was good.. but now I feel that moving away is the best call for production level apps |
If this library should be dead indeed, couldanyone recommend good alternatives? |
@ChristianGruen There aren't any good alternatives that can do everything this project can do. There are some simpler ones for doing tagging, such as angular-chips or ngTagsInput, but as you can see most of these projects aren't that active either. |
yes #2125 is working for my case thanks @sunilkandakatla |
Can this be closed? it has a merged pr and is very old. |
AFAICT the bug is still there, at least for 0.19.8. I don't think PR #2125
have been merged yet.
…On Fri, Aug 17, 2018, 11:10 Stephen Dahl ***@***.***> wrote:
Can this be closed? it has a merged pr and is very old.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1980 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AEKqyqJuzkkVGWQdmKw_-bp2YMmEPdwEks5uRs69gaJpZM4NDwag>
.
|
@stephen-dahl I just successfully tested PR #2125 on Chrome 68, Firefox 61 and IE 11 and it does fix the problem in my projects, but the PR hasn't been merged into master yet. |
input is not too big or too small - it takes the whole remaining part of the current row. If smaller than the min input width - goes to the next row closes angular-ui#1980, possibly angular-ui#2010 (cherry picked from commit 2fbd285)
Bug description:
Input box for ui-select multiple forcing text entry at new line, even if values do not take up entire first line
There is already closed issue for this #1556 undesired behavior.. but for older version. Since I got no help there, opening new issue.
Link to minimally-working plunker that reproduces the issue:
plunker
All selects forces new line when there is at least 1 item selected.. this was not happening before..
Notice also that only like 40% of the line is clickable in order to start typing in it:

Version of Angular, UI-Select, and Bootstrap/Select2/Selectize CSS
Angular: 1.6.4
UI-Select: ^0.19.8
Bootstrap/Select2/Selectize CSS (if applicable): ^3.3.7
The text was updated successfully, but these errors were encountered: