Jquery Autocomplete clear textbox if no match found - javascript

I am using Jquery's autocomplete plugins to show smart search textbox in my application.
To get better Idea plz refere following url
http://docs.jquery.com/Plugins/Autocomplete
Now what I want is, When user goes on typing in the textbox respected filter result get append to the textbox which is fine. If the user types character which doesn't match the result then I want to clear that character.
Means any how I want to force the user to type only those characters that are in the autocomplete result.
Thanks in advance.
Sachin

$('#'+Artist.id).autocomplete(responce, {
matchContains:false,
minChars:1,
autoFill:false,
mustMatch:true,
cacheLength:20,
max:20
});
you can override .autocomplete(responce) with the one mention above and set the parameter as per your requirment.
The MustMatch=true solve my problem.

Related

Is it possible to manually edit data after a dropdown auto-populates the field?

I am the opposite of a code monkey, so please forgive me if this is a simple solution. I have searched and searched and though I've found possible code examples, cannot find any information on how to fix the issue.
I've created a form-fillable PDF. I have fields that calculate based on inputs. I have a dropdown box that auto-populates some of the numbers (to add to the manual inputs). All of these work great!
I thought I would get fancy and further fill some of my data in the form. This is where the problems get funky.
I am setting the fields as shown, but those numbers can no longer be modified afterward.
this.getField("RanksPsy").value = psy;
this.getField("RanksBlade").value = blde;
this.getField("RanksBrawl").value = brwl;
this.getField("RanksCou").value = cou;
this.getField("RanksDip").value = dip;
I have buttons to increase/decrease the Ranks... fields, but the dropdown locks them and I'd like to avoid that if possible.
Is there another way to set those fields without using this.getField?
Thank you.
If I'm honest, I didn't understand the question well 😅
I don't recognize the getField function, so I decided to google it and found a RAD PDF documentation, so I'm assuming that's the library you're using to do this.
As that documentation states,
getFunction gets the first PDF form field object in the loaded
PdfWebControl document with a given name.
And this is the example provided, it may help.
var field = myApi.getField("Test Name");
if(field) {
//set its name to "New Name"
field.setProperties( {"name" : "New Name"} );
}
The solution to this is to put the script as an 'on blur' event rather than a keystroke event. It writes the data and then leaves it alone, which is exactly what I was looking for.

inserting a variable into the drilldown of an object

I am sure this question has been asked before, just don't know the verbiage to find it in a search. Basically I have an object which has values in it and values in that and so on and one of those values will change depending on what is in the text box so I need to make it a variable but it freaks out when I do.
SO if you go to this page:
http://shawnwow.com/chineseCharacterHelpr/
Type "mao" in the text box then go into console and type "currentPinyin" you SHOULD get "mao" and then if you type:
$.wordDatabase.words.mao.choices;
You would get the Chinese characters as expected for "mao" but I need to have it grab whatever is in that text box so I replace mao with the variable currentPinyin by putting in:
$.wordDatabase.words.currentPinyin.choices;
I get a vague error... even though I don't get errors when I manually use mao and currentPinyin is equal to mao. I am guessing it has to do with using a variable in the object path but I have no idea what else to do.
To see the JS code (lines 29-32):
https://github.com/olmansju/chineseCharacterHelpr/blob/master/JS/scripts.js
This Chinese widget isn't mine and I think I need to explore what is generating the list items for Chinese Characters in ul.options as that is probably extracting it for me somewhere and maybe I can just call that, I don't know.
On a site note, using keyup as a trigger seems to not always hit depending on how fast I type the character. I want to use the jquery trigger "change" on the same element I am copying so I tried:
$("#chinese-ime .typing").change(function (){
alert("Did this trigger?");
})
I see the contents of .typing changing but the alert isn't triggering. Am I doing something wrong?
Thank you for your time! I understand this is long so I appreciate it!
A coworker figured it out for me, the issue was it was looking for choices inside of currentPinyin, not choices inside of the text for current pinyin.
So the correct output was this $.wordDatabase.words[currentPinyin].choices;

Capture key input on select (dropdown list) in JavaScript

I'm trying to capture the input on a dropdown in JavaScript when it is focused, but it appears to not throw events.
Without using a third party library, is there anyway to capture this input?
Example: http://jsfiddle.net/m4tndtu4/11/
you don't want a third party library, but tagged your question to jquery.
you also use jquery code inside your jsfiddle, and mix it with native js...
so i assume, that you would at least want to use jquery.
i edited your fiddle the following: http://jsfiddle.net/m4tndtu4/14/
i just deleted everything you wrote, and just entered one 'on' handler:
$("#sel1").on("keyup",function(){ //this captures selection changes
$("#output").css("background-color", "yellow").text($('#sel1 option:selected').text()); // change the css of output and set the text to the value of the selected option
var enteredSearchSequence = String.fromCharCode(e.which);
$("#input").css("background-color", "yellow").text(enteredSearchSequence);
});
currently, it shows only the last pressed key - and also don't work if SHIFT was pressed... but i guess, you can figure out, how to concat the keypress or even delete it, because it's treated as a new search.
btw. given that, you may want to take a look at angularjs or any other mvc - a list and a searchbox is quite easy with those frameworks!

Filtering table data based on search keyword using jQuery

I want to accomplish one simple thing using jQuery. I want to filter some table data on a page and there is a search box on top of the same page.
On every keystroke, I want to hide each row that does not match the search field. I want to process only client side data. How can I accomplish this?
Can anyone please give some example code of this? Like, how can I grab each keystroke and hide the required elements? I want something like this.
You need to use onkeydown, then grab it's val(), then find out if what the value :contains, matches up against whatever elements your using to compare it against, then hide() whatever elements do not match this condition and voila.
HTML:
<input type = "text" id="theText">
JQuery to get it's current value and display it on the console:
$('#theText').onkeydown(function(){
var x = $('#theText').val();
console.log(x);
});
It's a little old now, but I've used this plug-in in a project before and it worked great:
https://github.com/riklomas/quicksearch

How to replace whitespace with underscore when copy value from form field to another

Someone should be able to find this example for me or give an example..
After hours of searching I found the answer using some bizare search terms in Google only for my 15 month old to close the browser window for me without book marking it! I had private browsing on so it didn't save my history :-(
I have a web form, I need to pass the value of one form field to another form field at the same time replace the white space with underscore using JQuery.
example of what I'm looking for
<input name="PageName" id="PageName" type="text" value="All About Us Page" />
<input name="PageURL" id="PageURL" type="hidden" value="all_about_us_page" />
so when the form is submitted it gives nice formatted URLs to the page(s) I don't know much about JavaScript or JQuery and how to write variable to make it work.
Hope someone can give a working example, so at least I can get it working and in turn help someone searching in vien for the same solution the title of this should rank pretty high in Google for others to follow.
A little jQuery plugin to do something like this (this would put the value of the first matched element into the set of elements matched by the passed in selector):
$.fn.copyTo = function(selector) {
$(selector).val($(this[0]).val().replace(/\s/g, "_"));
};
Example usage:
$("#source").copyTo("#dest");
Here's a working example.
To copy the value from source, to dest, while replacing whitespace with an underscore, this should do it.
$("#dest").val($("#source").val().replace(' ', '_'));
Or to get any whitespace
$("#dest").val($("#source").val().replace(/\s/g, '_'));

Categories