target.appendJavascript(String.format("document.getElementById(%s).value =
''", tagsTextfield.getMarkupId()));does not clear the text field.
Any idea how to do this?

Hbiloo


On Thu, Feb 12, 2009 at 10:15 PM, Azzeddine Daddah <waarhei...@gmail.com>wrote:

> This is what I've till now. Clearing the text field does not work:
> private void addTagsPart(final Recipe recipe) {
>         final WebMarkupContainer tagsContainer         = new
> WebMarkupContainer("tagsContainer");
>         final TagsAutoCompleteTextField tagsTextfield = new
> TagsAutoCompleteTextField("tags", new Model<Tag>());
>
>         add(tagsTextfield);
>         tagsTextfield.add(new AjaxFormComponentUpdatingBehavior("onchange")
> {
>             @Override
>             protected void onUpdate(AjaxRequestTarget target) {
>                 String inputValue = tagsTextfield.getValue();
>                 if (StringUtils.isNotBlank(inputValue)) {
>                     String[] splittedInputValues =
> StringUtils.split(inputValue, ",");
>                     for (String value : splittedInputValues) {
>                         recipe.addTag(new Tag(value));
>                     }
>                 }
>             }
>         });
>         add(new IndicatingAjaxLink<String>("addTagLink") {
>             @Override
>             public void onClick(AjaxRequestTarget target) {
>                 target.addComponent(tagsContainer);
>
>  target.appendJavascript(String.format("document.getElementById(%s).value =
> ''", tagsTextfield.getMarkupId()));
>                 target.appendJavascript("new Effect.Shake($('" +
> tagsContainer.getMarkupId() + "'));");
>             }
>         });
>         tagsContainer.add(new ListView<Tag>("tags", new
> PropertyModel<List<Tag>>(recipe, "tags")) {
>             @Override
>             protected void populateItem(ListItem<Tag> item) {
>                 Tag tag = item.getModelObject();
>                 item.add(new Label("tag", tag.getName()));
>             }
>         });
>
>         tagsContainer.setOutputMarkupId(true);
>         add(tagsContainer);
>     }
>
> ...
>
> private class TagsAutoCompleteTextField extends AutoCompleteTextField<Tag>
> {
>         public TagsAutoCompleteTextField(String id, final IModel<Tag>
> model) {
>             super(id, model, new AbstractAutoCompleteTextRenderer<Tag>() {
>                 @Override
>                 protected String getTextValue(Tag tag) {
>                     return tag.getName();
>                 }
>             });
>         }
>
>         @SuppressWarnings("unchecked")
>         @Override
>         protected Iterator<Tag> getChoices(String input) {
>             if (StringUtils.isBlank(input)) return
> Collections.EMPTY_LIST.iterator();
>             List<Tag> choices = new ArrayList<Tag>(10);
>             List<Tag> tags =
> RecipeService.getInstance().getAllPersistentTags();
>
>             for (Tag tag : tags) {
>                 if
> (tag.getName().toUpperCase().startsWith(input.toUpperCase())) {
>                     choices.add(tag);
>                     if (choices.size() == 10) break;
>                 }
>             }
>
>             return choices.iterator();
>         }
>
>     }
>
> Regards,
>
> Hbiloo
>
>
> On Thu, Feb 12, 2009 at 5:00 PM, Martin Makundi <
> martin.maku...@koodaripalvelut.com> wrote:
>
>> If you copy-paste your code here we can probably dig into it better  ...
>>
>> **
>> Martin
>>
>> 2009/2/12 Azzeddine Daddah <waarhei...@gmail.com>:
>> > Thanks guys for the quick replay.
>> > Martin: What I want to do is to select a value from the auto complete
>> text
>> > field, and when clicking the "Add" button, the selected value should be
>> > added to the tagsContainer (which is in fact a div that wraps the added
>> > values) and cleared from the text field.
>> >
>> > Luca: I've tried your suggestion but it didn't help. I've also tried to
>> > clear the text field using Javascript
>> >
>> target.appendJavascript(String.format("document.getElementById('%s').value =
>> > ''", auto.getOutputMarkupId()));
>> > but it also didn't work.
>> >
>> > Are there any other suggestions ways to implement this?
>> >
>> >
>> >
>> > Kind Regards
>> >
>> > Hbiloo
>> >
>> >
>> >
>> >
>> >
>> > On Thu, Feb 12, 2009 at 11:24 AM, Martin Makundi <
>> > martin.maku...@koodaripalvelut.com> wrote:
>> >
>> >> Also depending on your situation, clearInput might be necessary?
>> >>
>> >> **
>> >> Martin
>> >>
>> >> 2009/2/12 Luca Provenzani <eufor...@gmail.com>:
>> >> > i think you can put the field of the model/bean of the form to empty
>> and
>> >> > then call target.addComponet(tagsContainer);
>> >> > what kind of effect do you want? If you need to call javascript you
>> can
>> >> use
>> >> > target.appendJavaScript()...
>> >> >
>> >> > Luca
>> >> >
>> >> > 2009/2/12 Azzeddine Daddah <waarhei...@gmail.com>
>> >> >
>> >> >> Hello everyone,
>> >> >>
>> >> >> Could someone please tell me how I can clear the selected value of
>> an
>> >> >> AutoCompleteTextField. I've an AutoCompleteTextField and a link
>> which
>> >> >> should
>> >> >> clear the value of the text field after clicking it. I would also do
>> >> some
>> >> >> effects after clearing this value. Below my code:
>> >> >>
>> >> >> final AutoCompleteTextField<String> auto = new
>> >> >> AutoCompleteTextField<String>("auto", new Model<String>())
>> >> >> ...
>> >> >> form.add(auto);
>> >> >>
>> >> >> form.add(new IndicatingAjaxLink<String>("addLink", new
>> >> >> Model<String>("Add"))
>> >> >> {
>> >> >>        @Override
>> >> >>        public void onClick(AjaxRequestTarget target) {
>> >> >>            String inputValue = auto.getValue();
>> >> >>            auto.clearInput();
>> >> >>            // How to clear the auto's value and add some effects to
>> the
>> >> >> tagsContainer?
>> >> >>            target.addComponent(tagsContainer);
>> >> >>        }
>> >> >> });
>> >> >>
>> >> >>
>> >> >> Kind Regards,
>> >> >>
>> >> >> Hbiloo
>> >> >>
>> >> >
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >>
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

Reply via email to