dkim18
asked on
Form submission and jQuery autocomplete
Hi Experts,
I have created a jQuery autocomplete for certain page and it worked fine if I reach the page from a link in previous page.
However, if I reach the page with autocomplete text field from form submit, the autocomplete doesn't work.
I will show example in the following:
This is autocomplete part:
=========================
If I go the automplete page from this link, it works ok.
<a href="/xxx/abcEdit.do?meth od=edit">A dd New</a>
========================== =========
however, if I reach the autocomplete page from form submission, the autocomplete text field doesn't display anything when I type in something(more than 3 characters.)
What is that and what is the solution for this?
Thanks in advance
I have created a jQuery autocomplete for certain page and it worked fine if I reach the page from a link in previous page.
However, if I reach the page with autocomplete text field from form submit, the autocomplete doesn't work.
I will show example in the following:
This is autocomplete part:
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$("#diagtags").autocomplete({
minLength: 3, //at leat 3 char required
source: function (request, response) {
$.getJSON("AutoCompleteController", {
term: request.term
}, response);
}
});
});
});
</script>
...
...
...
<input type="text" name="test" id="diagtags" >
=========================
If I go the automplete page from this link, it works ok.
<a href="/xxx/abcEdit.do?meth
==========================
however, if I reach the autocomplete page from form submission, the autocomplete text field doesn't display anything when I type in something(more than 3 characters.)
<form name="AbcForm" method="post" action="/xxx/xxx/cde.do" >
<input type="submit" name="method" value="Add">
</form>
What is that and what is the solution for this?
Thanks in advance
ASKER
This is Struts framework (J2ee) and there is a reason that name is method; otherwise, I get a java.lang.NoSuchMethodExce ption error.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Do you get any errors in your console (or any output in the console) when you arrive at the page with a form submit?
--> No, I don't get any error in my console.
Is your form submit using AJAX ? If so then it might be a case of static binding causing your problem.
--> No. It is simple Struts actionform submit.
If element diagtags is being created dynamically you will have to bind the autocomplete handler to the element after the content has been loaded.
-->No, element diagtags is hardcoded.
First step though is to look at your console output for errors.
Posting a link would also help ...
--> Sorry, this is an intranet site.
--> No, I don't get any error in my console.
Is your form submit using AJAX ? If so then it might be a case of static binding causing your problem.
--> No. It is simple Struts actionform submit.
If element diagtags is being created dynamically you will have to bind the autocomplete handler to the element after the content has been loaded.
-->No, element diagtags is hardcoded.
First step though is to look at your console output for errors.
Posting a link would also help ...
--> Sorry, this is an intranet site.
Then what is different between accessing the site by URL and posting to the page?
Something must be different?
If you view your page source are you seeing the javascript to bind your element to the autocomplete?
Are you seeing your javascript libraries and can you click through to those.
Something must be different?
If you view your page source are you seeing the javascript to bind your element to the autocomplete?
Are you seeing your javascript libraries and can you click through to those.
ASKER
I checked page source and they are the same. I see the javascript to bind the element and all the javascript libraries.
I checked page source and they are the same.Then if they are the same the code will work.
Without having access to the page to see what is going on we have to use your eyes to diagnose.
From what you are telling us the pages are identical and there are no errors.
That is insufficient information to be able to make a diagnosis. Is it not possible to post the generated HTML from the two situations?
ASKER
I found there are differences:
this is from not working page:
<input aria-haspopup="true" aria-autocomplete="list" role="textbox" autocomplete="off" class="ui-autocomplete-inp ut ui-autocomplete-loading" name="diagnosisDescription " maxlength="100" size="100" value="Search for diagnosis term or number..." onclick="value=''; style.color='#000000';" style="width: 630px; height: 18px; color: rgb(0, 0, 0);" id="diagtags" title="Text will be deleted when clicking in field" type="text">
this is from working page:
<input aria-haspopup="true" aria-autocomplete="list" role="textbox" autocomplete="off" class="ui-autocomplete-inp ut" name="diagnosisDescription " maxlength="100" size="100" value="Search for diagnosis term or number..." onclick="value=''; style.color='#000000';" style="width: 630px; height: 18px; color: rgb(0, 0, 0);" id="diagtags" title="Text will be deleted when clicking in field" type="text">
this is from not working page:
<input aria-haspopup="true" aria-autocomplete="list" role="textbox" autocomplete="off" class="ui-autocomplete-inp
this is from working page:
<input aria-haspopup="true" aria-autocomplete="list" role="textbox" autocomplete="off" class="ui-autocomplete-inp
The only difference between those two is that the first has an extra class
ui-autocomplete-loading
Why is that?
ui-autocomplete-loading
Why is that?
ASKER
I think I found the issue. Actually the two URL wasn't the same. Struts action mapping always keeps the first url no matter what. I will probably ask another question more specific to this. Thanks anyway!
You are welcome - good luck with it.
Method could be a reserved word.
So perhaps something like:
Open in new window
Also, even though this works according to you:
Open in new window
, I will replace method with mode.Mode = edit or add or delete, etc