Skip to content
This repository has been archived by the owner on Oct 8, 2021. It is now read-only.

Clear input button for text inputs #1834

Closed
adickson opened this issue Jun 16, 2011 · 32 comments
Closed

Clear input button for text inputs #1834

adickson opened this issue Jun 16, 2011 · 32 comments
Assignees
Milestone

Comments

@adickson
Copy link

Would it be possible to add a feature request for an optional clear button on text fields as per the search field clear button?

@ghost ghost assigned scottjehl Jun 17, 2011
@toddparker
Copy link
Contributor

We've discussed this and will add an option to add a cear button to any of the single line text inputs.

@fletom
Copy link

fletom commented Jun 17, 2011

Awesome, I'm really glad to hear this.

@fletom
Copy link

fletom commented Jul 13, 2011

Has there been any progress on this yet?

@toddparker
Copy link
Contributor

Since this a new feature, it's not as high a priority as other, core things. We'll see what we can do.

@toddparker
Copy link
Contributor

Added to the feature request wiki page:
https://github.com/jquery/jquery-mobile/wiki/Feature-Requests

@ray007
Copy link

ray007 commented May 9, 2012

I guess it's too much to hope there's a patch or something to try this until it finds it way into mainline?

@ryanilg
Copy link

ryanilg commented Sep 13, 2012

Any update on this feature?

@ghost ghost assigned gseguin Sep 13, 2012
@toddparker
Copy link
Contributor

We'll look at adding this to 1.3. Re-opening.

@toddparker toddparker reopened this Sep 13, 2012
@efesar
Copy link

efesar commented Nov 1, 2012

I have a quick and simple workaround until this feature is in the stable version. In your HTML markup, use type="search" in your input tag. After your page has been initialized (best to catch it in the "pageshow" event), change the property type from "search" to "email" or "password" or whatever you need. Hide the search icon if you need to by overriding its CSS. It works like a charm.

@toddparker
Copy link
Contributor

We're adding this soon for 1.3. Looking for input on the option name - data-clear-btn="true"?

@ryanilg
Copy link

ryanilg commented Nov 7, 2012

Sounds good to me.

@efesar
Copy link

efesar commented Nov 8, 2012

Perfect! It will be nice to have a clear-button option built in so as to
not need to use a workaround.

-Keith Alexander W.
http://efesar.com

On Wed, Nov 7, 2012 at 2:52 PM, Ryan Ilg notifications@github.com wrote:

Sounds good to me.


Reply to this email directly or view it on GitHubhttps://github.com//issues/1834#issuecomment-10166714.

@collinforrester
Copy link
Contributor

By any chance have you guys started coding this yet? We have an implementation that could be submitted for review.

collinforrester pushed a commit to collinforrester/jquery-mobile that referenced this issue Nov 13, 2012
collinforrester pushed a commit to collinforrester/jquery-mobile that referenced this issue Nov 13, 2012
…ut type text. Feature request jquery-archive#1834 - clear input button for text inputs
collinforrester pushed a commit to collinforrester/jquery-mobile that referenced this issue Nov 13, 2012
@ghost ghost assigned jaspermdegroot Nov 13, 2012
@jaspermdegroot
Copy link
Contributor

@toddparker

See my comment at @collinforrester his PR #5281

What is your opinion regarding those two bullets?

  • I think we should introduce option clearButtonText and deprecate clearSearchButtonText.
  • There are some conflicts with native browser controls for input types number, date, etc. (I tested on Chrome). I am not sure yet what we should do with those.

@toddparker
Copy link
Contributor

@uGoMobi

I think we should use clearButtonText across the board for consistency so deprecate clearSearchButtonText is good (note this in the upgrade guide)

Re: the the native conflicts, it looks like the native stuff actually prevents the clear button from appearing at all - is that right? http://jquerymobile.com/branches/text-input-clear-btn/docs/demos/textinput/index.html

If that's the case, we may be able to remove things like the spinner arrows via CSS but that would be a limitation we'd document. If you want clear buttons, the spinners would go away. Worth looking into more.

@jaspermdegroot
Copy link
Contributor

@toddparker

On Chrome: The number input gets the clear button on top of the spinner (only if you actually type a number). The date input did't get the clear button at all.

I will check all major browsers on Linux/Mac OS/Windows.

@jerone
Copy link
Contributor

jerone commented Nov 15, 2012

If the 'new' number inputs on Chrome and any browser are supported an extra margin/padding right should be added I think.

var elm = document.createElement("input");
elm.setAttribute("type", "number");
if (elm.type !== "text") { /* number input supported, probably spinners, so add extra padding... */ }}

@jaspermdegroot
Copy link
Contributor

@jerone

Re: if (elm.type !== "text") { /* number input supported, probably spinners, so add extra padding... */

If the input type is not "text" it doesn't mean it is "number" ("date", "tel", "password", "file", "search").
We could target the number input in CSS (input[type="number"]) to set extra padding, but I am not in favor of this because I don't agree with "probably spinners". So far I've only seen them on Chrome desktop, Safari desktop, Opera desktop, and Opera Mobile.
Other solution is to set extra margin on the spinner (-webkit-inner/outer-spin-button) but that probably looks a bit weird.

About the date input: On Safari desktop a spinner is added. Chrome desktop, Opera desktop, and Opera Mobile show a "select indicator" for the datepicker. On Chrome for Android there is no indicator for the datepicker, but the clear button doesn't work.

collinforrester added a commit to collinforrester/jquery-mobile that referenced this issue Nov 15, 2012
collinforrester added a commit to collinforrester/jquery-mobile that referenced this issue Nov 15, 2012
@jaspermdegroot
Copy link
Contributor

This feature landed with commit d538941 and will be available in 1.3. We have to see if add some input types (date, number, color) to the blacklist because there might be conflicts with native browser controls.

Note that the new option clearBtn (data-clear-btn) can't be set to false for search inputs. Also, textarea can't get a clear button.

@ray007
Copy link

ray007 commented Nov 30, 2012

just a final related question: will we be able to use the mechanism used to display this button to also display our own custom buttons? I.e. something like a file-input but the browse button get some selection data via ajax and opens a dialog ...

@jaspermdegroot
Copy link
Contributor

@ray007

The behaviour and button icon of this feature are hardcoded, but you could copy and edit the code to add a custom button. Prevent the framework from enhancing the input and bind a call to your function to the "pagecreate" event.
As long as you use the same classes on the input, the wrapper div and the button (.ui-input-clear) the CSS will be fine.

However, when it comes to the file input you are very limited in what you can customize, because of security reasons. File inputs are meant to submit a local file, not a file from your server, so you can't access that via Ajax.
See also #5050.

@ray007
Copy link

ray007 commented Dec 1, 2012

@uGoMobi
Thanks for the quick response.
And I don't intend to add a browse button to a file-input, but to a text-input holding the name of a resource you can find by browsing the server. Which makes it work analog to a file-input ...

@cas8180
Copy link

cas8180 commented Feb 12, 2013

Was this added? I have the latest RC and html such as this:

and I am not getting the clear icon

@jaspermdegroot
Copy link
Contributor

@cas8180

Yes it has been added. I can't see your html because you didn't wrap it in triple backticks, but I suggest you look in the docs (http://jquerymobile.com/demos/1.3.0-rc.1/docs/forms/textinputs/) how to use this option.

@cas8180
Copy link

cas8180 commented Feb 13, 2013

@uGoMobi
Even in the documentation link you provided there is no clear button being displayed in the text field that it says its supposed to be applied to. I tested this in IE and Chrome and no clear button is visible. Only for the color picker widget

@jaspermdegroot
Copy link
Contributor

@cas8180

Do you have any special language / keyboard settings for your system or browser. Do you use multibyte characters?
Do you see the clear button if you type in the search input? http://jquerymobile.com/demos/1.3.0-rc.1/docs/forms/search/

@cas8180
Copy link

cas8180 commented Feb 13, 2013

No. No special settings all default and both desktop browser experience the same thing. No clear button.

@jaspermdegroot
Copy link
Contributor

@cas8180 - Can you post a screenshot here? You can just drag and drop the image in a comment. Thanks!

Edit: I mean... screenshot of text input that should get a clear button but doesn't have it while there is text in it.

@weisborg
Copy link

New feature is great and monitors text change and focus to hide itself, but doesn't monitor Form Reset. When resetting a form by button or code the clear buttons remain on the inputs.

@nightbook
Copy link

Is there anyway to disable the Clear Button from Search?
@uGoMobi mentioned it can't be set to false:
"Note that the new option clearBtn (data-clear-btn) can't be set to false for search inputs. Also, textarea can't get a clear button."
Is there anyway to work around this as I'd rather not have the functionality.
Thanks

@collinforrester
Copy link
Contributor

Programmatically I don't know of a way, but I don't see why you couldn't just remove the DOM elements before page show and take the padding-right for those elements back down to 5px or so.

.ui-input-search {
  padding-right: 5px;
}
$('.ui-input-clear').remove(); // in the appropriate jQM event handler

@nightbook
Copy link

Thanks @collinforrester,
Good call, I ended up hiding it with a display:none; but will take
advantage of your padding-right to fix the display. Appreciated.
Cheers

On Thu, Apr 3, 2014 at 6:08 AM, collinforrester notifications@gh.neting.ccwrote:

Programmatically I don't know of a way, but I don't see why you couldn't
just remove the DOM elements before page show and take the padding-right
for those elements back down to 5px or so.

.ui-input-search {
padding-right: 5px;}

$('.ui-input-clear').remove(); // in the appropriate jQM event handler

Reply to this email directly or view it on GitHubhttps://github.com//issues/1834#issuecomment-39448309
.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests