Tuesday, February 24, 2009

Sexy Combo jQuery plugin

Introduction

Sexy Combo is a jQuery plugin that allows you to turn default browser selectboxes into much more attractive and usable comboboxes. The user can choose whether to select option from the dropdown list or just type it. This widget reaches its maximum efficiency when we have selectboxes with lots of options (e.g. countries or states), so it would be difficult for users to find option in the huge list.

The plugin is usable not only for end users, but also for developers. Sexy Combo has a lot of configuration options so you can modify its behaviour and appearance. FRom this version the core CSS file is separated from the CSS that provides combo's appearance, and now you are able to easily create new skins for the plugin.

Examples

Please view demo page to see the possibilities of Sexy Combo.

Installation

Please follow these instructions to install Sexy Combo:

  1. Download and unpack the archive.
  2. Include jQuery and plugin files to your web page:
     <script type="text/javascript" src="path_to_plugin/lib/jquery-1.3.2.js"></script>
     <script type="text/javascript" src="path_to_plugin/lib/jquery.sexy-combo-2.0.js"></script>
     
  3. Include core and skin CSS files to your page:
         <link rel="stylesheet" type="text/css" href="path_to_plugin/lib/sexy-combo.css" />
         <link rel="stylesheet" type="text/css" href="path_to_plugin/skins/skin_name/skin_name.css" />
         
  4. Done! Now make your selectboxes look and behave sexy!
     $("select").sexyCombo();
     

Usage and configuration options

Sexy Combo has a number of configuration options that are passed to the plugin in the form of JavaScript object, e.g. $("select").sexyCombo({triggerSelected: true});. The full list of options is:

  • (string) skin - name of the skin that will be applied to the combobox. Default is "sexy"
  • (string) suffix - this option allows you to configure text input's name. The suffix will be appended to the name of the selectbox. Default is "__sexyCombo".
  • (string) hiddenSuffix - the same as previous, but for the hidden input. Default is "__sexyComboHidden".
  • (string) initialHiddenValue - the initial value of the hidden input of the combo. Default is "" (empty string).
  • (string) emptyText - if provided, will be shown when an empty text input has no focus.
  • (bool) autoFill - if true, user's input will be autofilled with the value of the first item of the dropdown list. Default is false.
  • (bool) triggerSelected - if true, the selected option of the selectbox will become the initial value of the combo. Default is false.
  • (function) filterFn - a filter function that determines which options should be in the dropdown list. This function takes two parameters - current text input value and dropdown list item's value, and should return true if item should be in the dropdown list, otherwise false. Default is null.
  • (bool) dropUp - if true, the dropdown list will appear above text input. Default is false.

It is possible to create multiple comboboxes from which users can choose more than one option. All you need is to set "multiple" attribute of your selectbox to true, or set multiple config option to true if you create combo without selectbox. Currently this option does not work with autoFill config option. It will be fixed in one of the futute releases.

You are also able to create combos without using existing selectboxes. If you want to do this, you should use static method of jQuery.sexyCombo object named create, for example:

      $.sexyCombo.create({
          id : "id",
   name: "name",
   container: "#container",
   data: [
       {value: "1", text: "First option", selected: true},
       {value: "2", text: "Second option"},
       {value: "3", text: "Third option"}
   ]
      });
      

Below is the list of configuration options for static creating of comboboxes. You can pass them to the create method together with options we have discussed above.

  • (string) name - the name of the selectbox that will be created. Optional. Default is "" (empty string).
  • (string) id - the id of the selectbox that will be created. Optional. Default is "" (empty string)
  • (mixed) container - jQuery selector, jQuery object or DOM element that will hold the widget. Optional. Default is $(document).
  • (array) data - data that contains information about combo's options. This is an array of objects, which should have three properties - value(value of the option) and text(text that is displayed for this option) and (optionally) selected (if set to true, option's "selected" attribute will be set to true. Makes sence only with triggerSelected config option set to true). This option is required.
  • (string) url - the URL of JSON object that contains data for combo's options. Object's format is the same as for data option. If specified, data option will be ignored.
  • (object) ajaxData - data that will be passed to AJAX request.
  • (bool) multiple - if true, the combobox will be multiple. Default is false.

Appearance customization

In this version I have separated core CSS and presentational CSS, so now it's possible to create new skins for Sexy Combo. The download package contains one example skin. Feel free to create your own based on it.

Browser compatibility

Sexy Combo has been tested and works on the following browsers:

  • Internet Explorer 6 (PC)
  • Internet Explorer 7 (PC)
  • Firefox 1.5 (Linux)
  • Firefox 2 (Linux)
  • Firefox 3 (PC)
  • Opera 9 (PC)

Support project

Every user of Sexy Combo adds some value to it, so you help me by just using it. However, if you want to help more, you can do the following:

  • Tell the world about Sexy Combo. You can write an atricle or a blog post about it or just tell your friends/collegues about it.
  • Test it on browsers that are not currently supported "officially".
  • Report a bug.
  • If you are web designer/developer, I will be glad to collaborate with you. If you have some suggestions on design/programming, feel free to email me at Kadalashvili at Vladimir at gmail dot com.

Please don't donate money, it's needless.

Want to hire JavaScript programmer?

Please view my CV

Resources

Learning of jquery-plugin is simple and easy with our 70-680 dumps and SY0-201 dumps. Learn JQuery to create impressive client-side-based user interface components using 642-813 dumps.

125 comments:

Ravisankaran said...

Its a great combo and it works great. Is it possible to add options group

Vladimir said...

Sorry, but currently it is not possible, and I am not planning to implement it in the near future.

Firman said...

Hi,

Great plugin, I have few questions.

1. Is it possible to get the value of selected option onChange event?

2. How to make the input to be freeze or not editable, so user can only pick a drop down option?

Vladimir said...

From the latest version it is possible to pass callback functions that are called when certain events (e.g. value changing, dropdown list appearing / disappearing) occur. These functions are called in the scope of the current instance of $.sexyCombo, so you have an access to all of its methods and properties, and, of course, can get the value of selected option.
What about your feature request, I don't see the reason to add it to my plugin. Please provide some information why do you need it.

Firman said...

Thanks, I get it.

Not sure if it is a feature request. I just want the input is not editable, so user can only choose one of option from drop down list instead of type it.

I tried to make the input disabled, but it's ugly. In this case I have only 4 options and there's no need to type it.

Well, it would be great if you add an option in config to set the input is editable or not.

Senthil said...

Whatz the maximum number options that has been tried/tested.

I used dojo's combo which cried for 8000 options using JSON. Will have to try this when i get time.

Vladimir said...

I tested it using only 50 options, so I cannot answer your question. But, surely, it will work very slow with 8000 options.

projectXmatt said...

Love the combo box. My one question is can you have it clear the box on tab or click. For example on a state box user selects ohio. They selected the wrong thing and would like to change it they click on it again and it only shows the option ohio, can it be made so that when the click to the field, or tab to it, it will clear out the current selection. So its ohio the tab or click to it, clears out ohio and populates it with all the options again.

Vladimir said...

There is no way to clear combo on tab or click. But to solve your problem you can implement your own filter function that will ignore current combo value, so all options will be displayed.

Chris said...

Is there a way to have the select box appear in line text. If I have the following

I was born in "select box here"

After applying sexyCombo I have

I was born in
"select box here"

Vladimir said...

You should edit plugin's stylesheet. I am not sure, but


div.combo {
....
display: inline;
}


should work.

BalusC said...

Nice stuff. I would only like to have an autocomplete-only / non-editable setting. It now by default allows users to enter a non-existing option (i.e. it's a fully editable dropdown). I would like to have a setting to disallow this and force user to enter/autocomplete an existing option of the list only (i.e. further typing is disabled when the as far typed string doesn't occur in the list of options).

This would be very useful when using long select-existing-option-only lists, e.g. countries. Something like the jQuery Quickselect plugin, but then with a sexy look :) (and being compatible with jQuery Validator plugin .. the Quickselect plugin doesn't copy the class attributes of the originating dropdown and thus for example the 'required' validation would fail).

Vladimir said...

Great idea about autocomplete-only option, but I have no time to implement it right now. If somebody will do this, it will be super. But I think the second idea about copying "class" attribute of the selectbox is not rational - it can break down combo's look.

itstrue said...

What steps will reproduce the problem?
1. A sexy-combo and another select box with original HTML
2. The sexy-combo's dropdown list seen need cover the other select box,
but it's not work in IE6.
3. It's the problem cause by div can not cover Select box in IE6.




What version of the product are you using? On what operating system?
-Using version 2.0.6


Please provide any additional information below.
-It's the problem cause by div can not cover Select box in IE6.

Abel said...

Hi - Great jQuery plugin!

A couple of features or how to's

1) How can I get the combo box to show multi columns?
2) How can I get the combo box to do cascading filter? Do you have some examples? ie Select a Country and the second combo box should only states for the country
3) I'm using ASP.NET 2.0 and have added the plugin and it appears to work until I use ASP Validators. ie Required Field. Even though a value is selected it still says no value is selected.
4) What/How to use "hiddenSuffix" and "initialHiddenValue "

Abel said...

Also,

5) Tabbing thru the fields of the combo box does close/hide/collapse the list items of the combo box

Rave said...

Has any one been able to get this to work with multiple select? Even the example page is broken for Multiple select. New selection overrides the previous selection. Am I missing something here?

Rave said...

I should have included how to reproduce the error...

On the combo select control, click on the drop down icon and select a option. Now click on the drop down icon again and select another option. Text box entry is replaced with the new selection instead of appending it.

Benek said...

Plugin looks fantastic but one major problem. Doesn't work properly when tested in IE6. No scrollbars for the options so you're limited to selecting only the ones that fit on the first screen. This is testing straight from your demo page. I'd use this plugin in a heartbeat if that problem was solved.

Phil Jones said...

Nice plugin but can you publish it as a dual license so I can use the MIT license please.

Purusottam said...

When one clicks on dropdown icon a javascript error occurs as displayed in attached screen shot. After analysis of the code the problem was in following piece of code.
getListMaxHeight: function()
{
return parseInt(this.listWrapper.css("maxHeight"), 10);
}
The problem with code is that it is trying to fetch the max height using javascript css atribute and its return null. Because of this following code while setting up the list height breaks
else if (liHeight > listHeight) {
this.listWrapper.height(Math.min(maxHeight, liHeight));
}
To avoid this problem the getListMaxHeight shall be modified as detailed below.
getListMaxHeight: function()
{
return parseInt(this.listWrapper.css("max-height"), 10);
}

Phil Jones said...

@Abel
Also,

5) Tabbing thru the fields of the combo box does close/hide/collapse the list items of the combo box

Confirmed in IE7 but FF3 handles it fine

Keith said...

I am new to JSON and am trying to hit my web service for the values for the list and am unable to figure out how to get your url property to work. In your example you simply entered in a url? to a text file with the name example.json??

Some insight would be GREATLY appreciated.

Keith

Ray said...

Hi Vladimir,

This issue was handled partially before - select events.
There are some events that can be captured like click or change, however, what is the event (or how can I know) when a text is completed when the "autofill" feature is on?

Thanks.

mickey said...

Hi

Don't know if anyone notice but the actual name=value of the select form is not being filled up therefore the backend is not able to access the value.

For instance, you had this id: "some_id"

That won't be filled up with the correct value.

jdahan said...

I updated setComboValue to do the following to update the original dropdown list so that code that was expecting to read the select input .. still can.

n = this.input.attr("name");
n = n.substring(0, n.length - this.config.suffix.length);

obj = $("#" + n);

obj.val(this.input.val())

add this code just before ...

if (this.input.val() != oldVal)
this.notify("textChange");

White Falcon said...

Here is my example for using the filterFn to match number entry to Dollar Format in the option list.
I considered adding it as an option in the plugin but here it is as a filter.
$("#empty-combo").sexyCombo({filterFn: function(a,b){
if(a == b.replace(/[^0-9]/g, '').substring(0,a.length)){
return true;
}
return false;
},emptyText: "Minimum Price"});

Thanks, Fred

kiev said...

Hi, Thanks for a great plugin. I am trying to use it now for an ajax type dropdown that loads a large amount of data from a variable only when the dropdown is selected (showListCallback). Initially it shows a 'selected value' via emptyText. The reason for this load on demand requirement is to save on page loading / processing time.

I was able to accomplish this by calling $('#'+combo_id).empty();
and re-Load the sexy Combo with $.sexyCombo.create(). However I it's not an ideal implementation since the combo gets recreated every time and I can't seem to simulate a button click to open up the menu and select the item.

Is there a way to accomplish this functionality within the current combo scope? Essentially Load json data OnDemand and select the correct value. Thanks!

daddywoodland said...

Hi, thanks for a crackin plugin!

It's got nearly everything I'm after, just having a couple of issues:

1)I still want to use my dropdown so am having to write the value back to the list once it's picked. Following a solution from these comments, cheers jdahan!

2)Tab functionality doesn't work like a standard dropdown. I'll be working out a solution but time says it'll be a hack...

Both are pretty critical to this being a complete solution in my mind but it's easily the best of the many I've looked at!

daddywoodland said...

RE Populating the dropddownlist - ! found this worked a little better, using the name to find the select list...

n = this.input.attr("name");
n = n.substring(0, n.length - this.config.suffix.length);

$("select[name='" + n + "']").val(this.input.val());

Tripnologist said...

Great Plugin! Thanks!

I have what I hope will be a simple question.

How would I get it so that if an option has a class, that class gets applied to the li as well?

Jason said...

Looks nice - it covers areas many of the other combobox plugins don't cover.

Just a few queries:

* The default value(s) seems to be set using the initialisation options. Could these not be picked up from the select list that this plugin applies to?

* Similarly, the 'multiple' option is set manually. Could this also be picked up from the select list?

* Pressing the space bar selects the first matching item from the list. This can be a problem when the item being selected contains a space. When trying to select "New York", the demo page always selects "New Hampshire" as soon as the space bar is pressed. "New York" is then off the radar.

* I realise custom search filters can be added, but I really think a 'search anywhere' filter option should be included by default. It could search absolutely anywhere, or it could search word boundaries (e.g. filtering for "New York" If I enter the text "yor"). There are at least three filter options that would be very useful in many circumstances right away.

-- Jason

Jason said...

I'll take back the comment about the space bar, as the downloaded version I am using does not seem to do that any more.

However, the fact that the default value of a drop-down is not picked up from the original drop-down, i.e. the 'selected' attribute, makes it a whole lot more obtrusive than it needs to be. The JavaScript needs to be given information on the data in the drop-down, so the jQuery code has to be generated dynamically, and cannot simply be included from a static script.

-- Jason

Jason said...

Okay, I'll take that comment back too, as I had not found the triggerSelected option (which should probably default to 'true' IMO).

Keep up the good work, and ignore me ;-)

-- Jason

Brandon said...

One thing that could be added is the tabIndex property.

This can easily be added to the config list:

$("#state").sexyCombo({autoFill: true, tabIndex: "20"});

Then add it to the input type definition (make sure you have a default if not using):
this.input = $("< input type='text' />").
appendTo(this.wrapper).
attr("autocomplete", "off").
attr("tabIndex", this.config.tabIndex).
attr("value", "").
attr("name", this.selectbox.attr("name") + this.config.suffix);

The < input has a space between it, so for people trying to paste it and it won't work, remove that space.

Brandon said...

@Phil Jones
@Abel

Tabbing out of the select box does not hide it in IE7. The dropdown continues to show until a value is selected or clicked on.

This is a bug.

Works well in FF though.

Miguel said...

Hi, this is a very nice plugin but....no, it is only my problem.
I work with a program generator (CodeCharge) and is more easy work whit the original fields name.
For example, I want receive the value in id_city and not id_city__sexyComboHidden. Its posible be added at the time of activation
($ ( "select"). sexycombo ()) to enable a call OnChange
create a routine that moves information from the hidden
the current field?

Christophe Méresse said...

It's a nice plugin that works well for some hundreds of options in the combo. If you try to use it with thousands options, it becomes too slow.

kehmical said...

Very nice except for that it does not render right in IE6, sadly this browser still matters.

jigen7 said...

how can i use sexy combo so that the value selected is pass onform submit in php coding?

fredz said...

Hi and thanks for this cute plugin.
I use it to insert in the database text input wich is not on the select options.

In the callback, I add the new entry inside the original select tag, but I don't know how to refresh/reload the Sexy Combo.

satyam said...

How to make combo working for special characters also. for eg. if i have an option like ALABAMA(USA).

The braces are giving js errors.

Rodrigo Malara said...

Awesome plugin ! Is that possible to allow the user to type in a value that is not in the drop down list ?

jamie said...

Nice plugin - but as far as I can see the value I actually want to receive is in the field suffixed with __sexyComboHidden, but it would be better if it overwrote the originally-named field so that the value is returned inside the original variable.

Am I doing something wrong?

SamTronik said...

Hi - big thanks for taking the time to make this public. Its a really handy add-on.

I have one issue..! It would be great to be able to specify which json fields to use.

I already have a set of php based json scripts that I would prefer not to have to duplicate in the required format needed for the control.

Is it (or will it be) possible to have something along the lines of:

idfield: 'id',
displayField: 'name'

in the options?

eg. the file I am using might include many fields like: id, createdDate, startTime, Name etc.

Hope this makes sense!

SamTronik said...

Not to worry too much about the above comment. I edited my php page to allow both types of JSON output.

$i=0;

if ($dropDown == 1) {
while ($row= $db->fetch_array($countRows)) {
$jsonArray[$i]['value']=$row['text'];
$jsonArray[$i]['text']=$row['text'];
$i++;
}

} else {

$jsonArray->page = $page;
$jsonArray->total = $totalPages;
$jsonArray->records = $recordCount;
$jsonArray->paging = $rp;

while ($row= $db->fetch_array($countRows)) {
$jsonArray->rows[$i]['dropDownId']=$row['dropDownId'];
$jsonArray->rows[$i]['category']=$row['category'];
$jsonArray->rows[$i]['text']=$row['text'];
$jsonArray->rows[$i]['description']=$row['description'];
$jsonArray->rows[$i]['position']=$row['position'];
$i++;
}
}

echo json_encode($jsonArray);

Javier Aguilar said...

Hi, I'm trying to go to another page when user selects an option. The page url is stored in the option's value.

I've tried to accomplish this with the changeCallback event... but when I load the page containing the combobox... it is redirected automatically (the event is fired).

This is my code:

$('#combo1').sexyCombo({
changeCallback: function(){
window.location.href=this.hidden.val();}});

I've tried to use hideListCallback too, but sometimes user can close the list without selecting a new value (in this case you haven't to be redirected)

Any ideas?

Thanks

adamrobertson said...

Can someone please help with this? All I want is the empty-combo style that displays a default message when nothing is selected, and disappears when the user clicks the select box. This isn't happening for me: http://staging.hellomynameisad.am/alpine/index.php


Instead, whichever value is the first in the list is displayed. Thanks

kd said...

Hi guys, I wanted to add a bit of functionality to this so that I could change the value of the select box when other events occur using jQuery which I managed to get working this is how I did it:

I modified the "jquery.sexy-combo-2.1.2.min.js" file to include the following:

an ID for each LI menu item [the ID in my case was the LI name being outputted]

an ID for the input box of sexy combo [that isnt hidden prefix one] which I used the name of the original box plus _input.

so an example of how it outputs is as follows:

I had to remove html tags to publish this.

ORIGINAL:

div class="combo sexy" style="z-index: 0;"
select id="frequency" name="frequency" style="display: none;"
/select
input class="" type="text" autocomplete="off" name="frequency__sexyCombo"/
input type="hidden" autocomplete="off" value="D" name="frequency__sexyComboHidden"/
div class="icon"/
div class="list-wrapper invisible" style="overflow-y: hidden; height: 60px; z-index: 99999;"
ul
li class="visible active"
/li
li class="visible"
/li
li class="visible"


THIS CHANGED TO:

div class="combo sexy" style="z-index: 0;"
select id="frequency" name="frequency" style="display: none;"
/select
input id="frequency_input" class="" type="text" autocomplete="off" name="frequency__sexyCombo"/>
input type="hidden" autocomplete="off" value="D" name="frequency__sexyComboHidden"/
div class="icon"/
div class="list-wrapper invisible" style="overflow-y: hidden; height: 60px; z-index: 99999;"
ul
li id="Day" class="visible active"
/li
li id="Week" class="visible"
/li
li id="Month" class="visible"

To modify the sexy combo min script you must make the following changes

FROM:
("input type='text' /")

TO:
("input id=\""+this.selectbox.attr("name")+"_input\"type='text' /")

and

FROM:
("li /")

TO

("li id=\""+a+"\" /")

To change a select box value both physically, in the box and how the text looks this is how i then do it. $("frequency").val("D");
$("frequency"+"_input").val("Day");
$("input[name='frequency__sexyComboHidden']").val("D");
$("#Day").addClass('active');

REMEBER TO ADD THE RELEVENT < AND > TAGS.

This is just an example, and how I worked out how to do it, maybe there is other ways but I couldnt find them so this may help some of you.

Sutekh said...

Hello,

I think I have found a bug when you combine textChangeCallback and triggerSelected. It appears textChangeCallback is fired upon page load as well as when selecting an item from the dropdown. When combined with triggerSelected (pre-selecting an item from the drop down on load) you get an infinite loop. Example:


$(function() {
$('.ddl').sexyCombo({triggerSelected: true,
textChangeCallback: function() {
__doPostBack('__Page', '');
}
});
});


The above (on an ASP.NET page) will result in a loop of post backs.

Is there any way to pre-select an item from the list as well as perform an action on item select?

Cheers,
Simon

moopet said...

This is pretty good, well done

Hakimtea said...

Thanks ever so much, very useful article. If you do not mind, please visit my article related to travel to Pandeglang district in Banten, Indonesia at Kenali dan Kunjungi Objek Wisata di Pandeglang

Best regards

Skorpio said...

It does not seeem to work when it is placed within the jQueryUI dialog. Am I missing something?

bitheads said...

Nice story . It's kind of funny and entertaining.Thank you for  sharing. the best place kenali dan kunjungi objek wisata di pandeglang to your vacation, i promise that's

Julien13340 said...

Hi ,

Thx for this great plugin !

Is it possible to change the sexy combo's selected value from another control (eg : on a button's "onClick" event) ?

ps : sorry for my english

Toolman said...

FOR ALL COMMENTERS: As a committer to the sexy-combo project, I am looking for issue and bug submissions. Instead of posting comments, consider adding them to the plugins official issue tracker:

http://code.google.com/p/sexy-combo/issues/entry

Google code SVN now hosts the source of each version back to 2.0, with proper revision history between all versions. This allows anyone with fixes or hacks on old version numbers to submit patches against any 2.0+ version.

bitheads said...

I don’t know If I said it already, but this so good stuff keep up the good work. I read a lot of blogs on a daily basis and for the most part Kenali dan Kunjungi Objek Wisata di Pandeglang just wanted to make a quick comment to say I’m glad I found your blog. Thanks.

Best regards
Seo Motivation automotive

Didik Wicaksono said...

I think users need to have the rights to choose their own classes. I have added another chain to the .sexyCombo() function to remove both classes (sexy combo).

Just FYI:
$('#selectInput').sexyCombo().parent().removeClass().addClass('sexierClassName');

bitheads said...

I don’t know If I said it already, but this so good stuff keep up the good work. I read a lot of blogs on a daily basis and for the most part Belajar seo blogspot just wanted to make a quick comment to say I’m glad I found your blog. Thanks.

Best regards
Seo Motivation Oes tsetnoc

Vikram said...

Function to find input text anywhere in the string ignoring periods and spaces. Ignores text that starts with "Select".

filterFn: function (a,b) {
if (a.search("Select")==0) {
return true;
}
else {
a=a.replace(eval("/\\./gi"),"");
a=a.replace(eval("/ /"),"");
b=b.replace(eval("/ /"),"");
b=b.replace(eval("/\\./gi"),"");

if (((b.toLowerCase()).search(a.toLowerCase()))!=(-1)) { return true; }
else { return false; }
}

cool said...

Hi

Great plugin.
I have question... Is it possible on keyup to search text option not just from beginning, but also from middle?
Mean on, like SQL, where %Term% ?

I have category's and subcategory's like:

Cat 1
- Subcat 1
- Subcat 2
Cat 2
- Subcat1

etc...

So user have to type "- " first to see subcategory's.

My bad english :) hope You will understood what i mean :)

diego2d said...

hey, the demo page is down

Bill said...

demo page requires a login so nobody can view the demo. You may want to fix it.

Iw said...

Hello! And thanks for this great plugin!
I have a problem when I have more then one combobox on one page. When I try to select something from one combobox, all others disappears in IE (in Firefox is fine), and I can't get them back until refresh of page. I tried something with css and changing off positions tags, but I can't get it to work... please help. I use IE 8, and it is the same on IE 7. On opera they can't even be opened... Please help me!

el al said...

Still haven't found what i'm looking for ...
But sexy-combo is great! And beside, it seems to be the ONLY one, which fits all requirements of a combobox:
- autocomplete
- remote data
- multiple select (with autocomplete)
- drop-down-button (!)
- text-input

I did not found ANY other jQuery Plugin, which has all of the four features mentioned above.

Great, thx.

mrpmr said...

Hi

Thanks for the sexy combo, exactly what I was looking for. I think I'm having a similar problem to Abel's 2nd point posted last year.

Iv'e got two select boxes. The first lets the user select a city and the second displays a list of locations in that city. This works on the standard HTML select fine, with a postback to the server and javascript to update the second list.

When I apply sexy combo it styles them and looks good. The first list of cities is displayed in the drop down (as it populated on load). However, when you select a city the second list no longer populates with the options.

I know the problem is to do with refreshing the sexy combo but I a bit stuck on how to do this.

I tried the option of creating the sexy combo in Javascript but doing it this way you dont seem to be able to add filters or selected index changed funtions?

I also thought about populating the sexy combo from a javascript array and adding new locations to that array, but will the changes be displayed on the sexy combo?

Thanks alot for your help, Paul :)

Michael said...

hi !

your sexy combo is almost perfect ! congratulation !

but there is a big problem : the json example doesn't work with jquery 1.4.2

i just post the issue in your google project.


i hope you could fix it...

courage !!!

Mike

xeno said...

demo page is protected

xeno said...

demo page is protected

anastacia said...

thanks for the download link! I know this will be very helpful !!!!! this is a very interesting and informative blog as well as generic viagra

anastacia said...
This comment has been removed by the author.
Sarmad Ali said...

I have modified the code and now it supports option group (optgroup) too. We have studied the code and removed some other bugs too like if there was a space in an option it was not setting the hidden value.

i have placed the modified code below as i could not upload it here. If you make me a member of your google code i will commit the svn there.
swdevsarmadali@gmail.com is my id.

here is a snippet of my effort:
this.options.each(function() {
if (this.tagName.toUpperCase()=='OPTGROUP')
{

var optionText = $.trim($(this).attr('label'));
if (self.config.checkWidth) {
optWidths.push($("[li /]").
appendTo(self.list).
html('[span class="optgroup"]' + optionText + "[/span]").
addClass("visible").find("span").outerWidth());
}
else {
$("[li /]").
appendTo(self.list).
html('[span class="optgroup"]' + optionText + "[/span]").
addClass("visible");
}
$(this).children().each(function() {

var optionText = $.trim($(this).text());
if (self.config.checkWidth) {
optWidths.push($("[li /]").
appendTo(self.list).
html('[span class="optgroup-child"]' + optionText + "[/span]").
addClass("visible").find("span").outerWidth());
}
else {
$("[li /]").
appendTo(self.list).
html('[span class="optgroup-child"]' + optionText + "[/span]").
addClass("visible");
}


});


}
else
{
var optionText = $.trim($(this).text());
if (self.config.checkWidth) {
optWidths.push($("[li /]").
appendTo(self.list).
html("[span]" + optionText + "[/span]").
addClass("visible").find("span").outerWidth());
}
else {
$("[li /]").
appendTo(self.list).
html("[span]" + optionText + "[/span]").
addClass("visible");
}
}
});

Cédric said...

Great plugin! But I didn't succeed to apply different skins? Any ideas how to proceed?

Mick said...

Great plugin.

Had issues with the selected attribute of options where there was a right space in them.

To explain further: if i selected the option "hi there1" below and submitted it, the returned value would correctly be "y". However on selecting the option "hi there2 " (with a right space) I expected the value "z" to be returned but found that the default value "x" was returned instead.

[option value="x"]default[/option]
[option value="y"]hi there1[/option]
[option value="z"]hi there2 [/option]

It can throw you in circles trying to understand why sometimes an item gets selected and sometimes not. If you are having similar probs try removing any left/right spaces.

Mick said...

I found the following filterFn functionality worked great, but was very slow on some browsers where the select group was growing large:

filterFn: function (a,b) {
if (a.search("Select")==0) {
return true;
}
else {
a=a.replace(eval("/\\./gi"),"");
a=a.replace(eval("/ /"),"");
b=b.replace(eval("/ /"),"");
b=b.replace(eval("/\\./gi"),"");

if (((b.toLowerCase()).search(a.toLowerCase()))!=(-1)) { return true; }
else { return false; }
}

I decided to remove the four replace calls to speed it up and change it to the following:

filterFn: function (a,b) {
if (a.search("Select")==0) {
return true;
}
else {
if (((b.toLowerCase()).search(a.toLowerCase()))!=(-1)) { return true; }
else { return false; }
}

This removed some unneccessary functionaly for me and worked MUCH quicker for large lists.

Jonathan Motes said...

Could you fix the demo page please?

Archie Pavia said...

WOW - I am in LOVE with these! All these ideas are quite easy to understand and I wonder why I've never thought thus. It's excellent that your blog is full of worthy information for your readers. Thanks, I'm very glad I could get more knowledge from here, articles and info. -- what size luggage is carry on

Rodrigo Campero Paz said...

Hi there, this component is wonderful, Is there a way to disable typing on the combo? disable filtering. Thank you

faraz ahmad said...

hi there this post is useful
ccna dumps

faraz ahmad said...

hi there this post is useful
funny pictures

kawsar said...

Hi
Will this work for creating links can you add a URL to the last option?? So when user selects all 3 optiobs then it will take then to a link depending on wat they choose. Will it work with blogger?

zoozoo4u said...
This comment has been removed by the author.
zoozoo4u said...

nice post thanks!!
seo consultant India

SEO Company Bangalore said...

Thanks for sharing this great Post dude
Web design company in bangalore

web design company said...

I wanted to thank you for this great blog! I really enjoy every little bit of it and I have you bookmarked to check out new stuff you post.Web Designing Companies in Bangalore

zersys cmpy said...

Great work! That is the kind of info that are supposed to be shared across the net. After all I am opting-in with your nourish and that i do hope you publish once again rapidly.
Great manual case study its really informative thanks for sharing.


website design company bangalore

SEO Company Bangalore said...

Thanks for sharing this great Post dude
Web Design Company Bangalore

zinavo balaji said...

Nice blog. Blogs are always informative. Sharing the latest trends and providing tips for web design, web development, hosting and SEO. Which are helps beginners.
BEST Bangalore Website Development Company

Akhil said...

any one knows how to set selected value in dropdown
using jquery..

jaintechnosoft said...

Thanks, You just made my day a little easier by explaining about this plugin.
Online marketing Company Bangalore
Website Development Bangalore

zin demo said...

Nice Post. For web design and development jQuery plugin helps to attract the customers. Web Designing Bangalore
|Website Developers Bangalore

Manoranjan Sahoo said...

Very good and informative post over jQuery. I hope this tutorial really help the blog reader to add this plugins and make their site more and more attractive and user friendly. Nice post thanks to share this.
web designing company in india

BangaloreWeb Guru said...

Web designing, web developing, search engine optimization and provide the best performance to customers across the world. Website serve to assistance in poising yourself on the highest platform in the arena of World Wide Web.
Web Development Companies Bangalore | Website Designing Bangalore

Generic viagrabuy said...

Such a nice and wonderful blog please always share with us
Generic Viagra buy
Generic Viagra
Tadalis SX

Sandeep Jootoor said...

SEO Company in Bangalore,Website Design Company in Bangalore: Best Web development and Web design company in Bangalore, India. Specialized in latest optimization technologies according to Search Engine Standards

SEO Company in Bangalore: SEO Features offers website design, website development, web portal development, and interactive design.

Liza Bulbul said...

Great plugin, I have a questions.

Is it possible to get the value of selected option on Change event?

any ways good information, would like to know more

learn seo with our domain expert

seo training in bangalore

Nguyễn Quỳnh said...

Thank you for sharing informationMáy lạnh Multi

Trần Đại Nghĩa said...

Thank you for sharing this information and Very good looking blog.
It is Very nice info............
rem cua

Mohamed Sameer said...







Love these! Super cute ideas!
we wait you here
شركة مكافحة حشرات بالاحساء شركة مكافحة النمل الابيض بالمدينه المنوره شركة مكافحة النمل الابيض بالرياض شركة رش مبيدات بالرياض شركة مكافحة حشرات بجدة شركة مكافحة النمل الابيض بجدة شركة رش مبيدات بجدة شركة مكافحة حشرات بالدمام شركة مكافحة النمل الابيض بالدمام شركة رش مبيدات بالدمام شركة مكافحة حشرات بالاحساء شركة مكافحة حشرات بالرياض+++

Mohamed Sameer said...


Love these! You are good :)
we wait you here
شركة مكافحة حشرات بالرياض شركة مكافحة النمل الابيض بالرياض شركة مكافحة حشرات بالدمام شركة مكافحة النمل الابيض بالدمام شركة مكافحة حشرات بالخبر شركة مكافحة حشرات بالجبيل شركة مكافحة حشرات بابها شركة مكافحة حشرات بالطائف شركة مكافحة حشرات بجازان شركة مكافحة حشرات بالقصيم شركة مكافحة حشرات بجدة شركة مكافحه النمل الابيض بالقصيم شركة مكافحة النمل الابيض بجدة شركة مكافحة حشرات بحائل شركة مكافحة النمل الابيض بحائل شركة مكافحة النمل الابيض بالمدينه المنوره شركة مكافحة حشرات بتبوك شركة مكافحة حشرات بالخرج




seribuinfounik said...

or well must less rent read walk so be. Easy sold at do hour sing spot. Any meant has cease too the decay. Since party burst am it match. By or blushes between besides offices noisier as. Sending do brought winding compass in. P.
hargamesinterbaru.com
juraganponsel.com
seribuinfounik
infosekarang
usahasekarang
fullsharing
gudangartikel
shareartikel
sharingituindah
kumpulanartikel
beritanasional
pemulablog

jdt said...

Wish you hadn't called your combo "sexy". I cannot get to it through our corporate firewall because of the name.

khaled ali said...


شركة رش مبيدات بخميس مشيط
شركة تنظيف بخميس مشيط
شركة تنظيف خزانات بخميس ميشط
شركة كشف تسربات المياه بخميس مشيط
شركة مكافحة حشرات بخميس مشيط
شركة تنظيف منازل بخميس مشيط
شركة نقل اثاث وعفش بخميس مشيط
شركة تسليك مجارى بخميس مشيط

lolo sayd said...

People know what it's like to face the challenge of cleaning a messy bedroom. Sometimes, it can feel like you're about to climb Mount Everest when all you're really doing is putting some clothes and books away. Luckily, it doesn't have to be as hard as scaling the tallest peak. Follow these simple steps to make cleaning your room a walk in the park rather than a mountain climbing race. شركة مكافحة حشرات بجدة شركة مكافحة النمل الابيض بجدة شركة كشف تسربات المياه بجدة شركة تسليك مجارى بجدة شركة مكافحة حشرات بالاحساء شركة مكافحة النمل الابيض بالاحساء شركة كشف تسربات المياه بالاحساء

lolo sayd said...

People know what it's like to face the challenge of cleaning a messy bedroom. Sometimes, it can feel like you're about to climb Mount Everest when all you're really doing is putting some clothes and books away. Luckily, it doesn't have to be as hard as scaling the tallest peak. Follow these simple steps to make cleaning your room a walk in the park rather than a mountain climbing race. شركة مكافحة حشرات بجدة شركة مكافحة النمل الابيض بجدة شركة كشف تسربات المياه بجدة شركة تسليك مجارى بجدة شركة مكافحة حشرات بالاحساء شركة مكافحة النمل الابيض بالاحساء شركة كشف تسربات المياه بالاحساء

lolo sayd said...


Plan out when you will take a break. Taking a break to eat, drink, and kick up your heels is often a good idea. However, don’t let yourself become too distracted during your break! Plan out a chosen amount of time that you will take a break for. It is best to take a break after you have completed an entire task rather than in the middle of it. One example could be that you plan to take a break after you have cleaned out under your bed and before you start organizing the smaller things in your room.
• Don't take a break if the time of your break comes around and you feel as though you're on a roll. Use that feeling of being on a roll to get even more done!
شركة تنظيف خزانات بالرياض شركة عزل خزانات بالرياض شركة عزل اسطح بالرياض شركة نقل عفش بالرياض شركة نقل اثاث بالرياض شركة تسليك مجارى بالرياض

khaled ali said...

The company to clean the tanks in Khamis Mushayt best companies working in this area, which has the superior experience in this area where our work overall cleanliness of the reservoir, whether from home and abroad شركة تنظيف بخميس مشيط The spraying pesticide company in Khamis Mushayt stronger companies working in the field of pesticide spraying and this area is one of the most important things that practiced by many of our valued customers to carry out spraying final and get rid of any kind of dangerous insects
شركة رش مبيدات بخميس مشيط Is the company specialized in the field of pest control in Khamis Mushayt big companies and the best of our company absolutely has the optimal solutions and better in order to get effective results and the superb quality of the elimination of all kinds of insects شركة مكافحة حشرات بخميس مشيط


شركة رش مبيدات بخميس مشيط
شركة تنظيف بخميس مشيط
شركة تنظيف خزانات بخميس ميشط
شركة كشف تسربات المياه بخميس مشيط
شركة مكافحة حشرات بخميس مشيط
شركة تنظيف منازل بخميس مشيط
شركة نقل اثاث وعفش بخميس مشيط
شركة تسليك مجارى بخميس مشيط

Medo Youssef said...


• legislative control means
Where many countries put laws and regulations are specific to workers in the field of agriculture and farmers, even working to lighten horizons and educate them in regards to insect pests of agricultural as well as agricultural drilling law humiliation is applied in the presence of a pest and spread until it is addressed and the reduction of the spread.

شركة تسليك مجارى بالطائف • Chemical control
It can be defined as the pesticide as a natural chemical that may be manufactured with the ability to kill pests little concentration, and Lilja rights to the use of chemical method in the case of the rest of the natural failure or applied in response to insect pests, and resorts have also in the case of overcoming the intensity of the numerical limit economic embarrassment (Veadh number significantly), and success depends on the method of chemical control to choose the place and the right time and the right kind of also insecticide and used properly focus the recommended allowable until the success of the operation


شركة تسليك مجارى بالطائف
شركة رش مبيدات بالقصيم
شركة تنظيف بالقصيم
شركة تنظيف خزانات بالقصيم
شركة كشف تسربات المياه بالقصيم
شركة مكافحة حشرات بالقصيم
شركة تنظيف منازل بالقصيم
شركة نقل اثاث وعفش بالقصيم
شركة تسليك مجارى بالقصيم
شركة تنسيق حدائق بالرياض

Website/www.nqaalite.com
For e_mail/goalkeeper2020@yahoo.com

Gevaa said...

شركة مكافحة حشرات بجدة
شركة رش مبيدات بجدة
شركة تنظيف منازل بجدة
شركة عزل خزانات بجدة
شركة تنظيف بجدة
شركة مكافحة حشرات بمكة
شركة رش مبيدات بمكه
شركة مكافحة حشرات بالطائف
شركة رش مبيدات بالطائف
شركة تنظيف بالطائف

Gevaa said...

شركة شفط بيارات بالرياض
شركة تسليك مجارى بالرياض
شركة تنظيف بالمزاحميه
شركة نقل عفش بالمزاحميه
شركة نقل عفش بالمجمعه
شركة كشف تسربات مياه بالمزاحمه
شركة تنظيف بالخرج
شركة نقل عفش بالخرج
شركة مكافحة حشرات بالخرج
شركة تنظيف منازل بالخرج

شركة روائع للخدمات said...

شركة روائع

شركة نقل اثاث بالرياض
شركة نقل عفش بالرياض
نقل اثاث داخل الرياض
نقل اثاث خارج الرياض
ارقام شركات نقل اثاث بالرياض
شركات نقل اثاث بالرياض
افضل شركة نقل اثاث بالرياض
افضل شركة نقل عفش بالرياض
شركات نقل عفش
شركات نقل عفش بالرياض
نقل عفش داخل وخارج الرياض
نقل عفش خارج الرياض

شراء اثاث مستعمل بالرياض
شركة شراء اثاث مستعمل بالرياض
ارقام الاثاث المستعمل بالرياض
محلات شراء الاثاث المستعمل بالرياض
حقين الاثاث المستعمل بالرياض
شراء اثاث مستعمل بالرياض

شراء الاثاث المستعمل بالرياض

محلات شراء الاثاث المستعمل بالرياض

ارقام شراء الاثاث مستعمل بالرياض

شراء الاثاث المستعمل

شراء اثاث مستعمل

حقين الاثاث المستعمل بالرياض

Hema Refai said...

شركة تنظيف خزانات بالرياض
شركة تسليك مجاري بالرياض
شركة مكافحة حشرات بالرياض

Elahe Anvary said...

نیاز به کاشت مو و تعداد اشخاصی که در مطب های متخصصان کاشت مو در جستجوی راهکاری برای داشتن موهای پرپشت می باشند این روزها بازار کاشت مو طبیعی سر را داغ کرده است. بهتر است پیش از استفاده از روش های گوناگون کاشت موی سر در مورد آنها اطلاعات کافی داشته باشید.
کاشت مو

Ella Johanson said...

آیا تا به حال لب شما ترک خورده است؟ اگر به آخرین باری که لب‌تان دچار ترک شده که معمولاً مربوط به فصول سرما است فکر کنید، احتمالاً متوجه می‌شوید که ابتدا پوست لب خشک و سپس شروع به ترک برداشتن کرده است. اگر به ترک لب‌تان بی‌توجهی می‌کردید، خشکی آن به قدری شدت می‌یافت که باعث وسیع و عمیق شدن ترک و در نهایت خونریزی در آن می‌شد. این مثال ساده نمونه‌ی بارزی از یک نوع شقاق بود که می‌تواند بارها برای بدن هر فردی رخ داده باشد.

almostakbl company said...


شركة شراء اثاث مستعمل بالرياض والقصيم وجدة
تقدم شركة المستقبل افضل الخدمات المميزة فى اعمال الشراء للاثاث المستعمل بالرياص ومن خلال اعلى الاسعار المميزة وتقديم المتخصصون فى اعمال الشراء للاثاث والتعرف على كافة التفاصيل ومن خلال الخبرة الواسعة فى هذا المجال من اكثر من 10 سنوات تقريبا ، فلدينا فريق متخصص من العمل المميز والخبرة التى تساعد فى انجاز مهام الشراء لابعد الحدود ومن خلال الاتصال بشركة المستقبل تقوم الشركة بارسال المندوب المتخصص فى اعمال الشراء لكافة القطع الاثاثية المتواجدة فى المكان .
شراء اثاث مستعمل بالرياض
هناك الكثير من السيدات التى تقوم باعمال الشراء للاثاث او رغبة فى تغير ديكور خاص بالمنزل او القيام بشراء تحف جديدة او انتيكات ، وتبقى مشكلة وهى القيام بالتخلص من الاثاث القديم مما يؤدى الى التعرض الى تركة فى مكان فى المنزل او خارج المنزل فى كلتا الحالتين يؤدى الى التعرض الى المشكلات فى الفوضى والازدحام .
تخلص من ترك الاثاث دون اى فائدة وتخلص من القيام بالاستعانة بالشركات او التجار حتى يتم القيام باعمال الشراء للاثاث بغرض التخلص منة فقط دون ان تستفد بالاسعار ، فشركة المستقبل من اهم الشركات التى تعمل على شراء القطع الاثاث المتواجدة فى المكان والاجهزة الكهربائية والمفروشات المتواجدة فتواصل على الارقام المتواجدة على الصفحة او اطلب الخدمة بشكل مباشر .
شركة شراء اثاث مستعمل بالرياض
كيف تتم اعمال الشراء للاثاث المستعمل بالرياض
تعتمد شركة المستقبل على عدد من الخدمات المميزة حتى تحقق افضل الخدمات التى تتناسب مع جميع عملائنا الكرام فى الشراء من اهم ما تقوم بية الاتى :-
1. 1- عند الاتصال بشركة المستقبل ترسل المندوب للمعاينة للاثاث المتواجد فى المكان ، او من الممكن ان يتم ارسال الصور عبر الحساب الخاص بالشركة لمعاينة الاثاث .
2. 2- الاهتمام باعطاء عملاء الشركة الاسعار الحقيقية والدفع عن طريق الكاش بشكل فورى عقب الاتفاق مباشرا .
3. 3- الاهتمام باعمال التغليف الخاصة بالشركة والنقل على دون ام يتم التعرض الى اى مصاريف اضافية .
4. 4- القيام بشراء كافة الاغراض المتواجدة لديكم فكلما ارتفعت قيمة القطع وزادة جودة والمتانة وصلاحيتة فى الاستخدام بعد ان يتم الشراء كلما كان اسعار مرتفعة .
5. شركة شراء اثاث مستعمل بجدة
6. محلات الاثاث المستعمل بجدة
عملية تقييم الاثاث وتسعيرة من الخدمات التى تتميز بية شركة شراء اثاث مستعمل بالقصيم ونهتم بتقديم خدمة عادلة سليمة تميزنا عن غيرنا من الشركات التى تعمل فى نفس المجال .
مميزات الاستعانة بشركة شراء اثاث مستعمل بجدة
ارقام الاثاث المستعمل
من اهم الخدمات التى استطاعت ان تنفرد بية شركة المستقبل هى سرعة تلبية طلب عملاء الشركة والاهتمام بتقديم الاسعار العادلة ، بالاضافة الى ان الشركة لديه فروع فى كل مكان فى المملكة من اجل ان يتم التخلص من كافة الاغراض المتواجدة واصبحت لا قيمة لة .

buyket said...


ياتي دائما مجال الخدمات في بعض الاحيان في الاولويات التي يحتاجها الفرد فمثلا في مجال التنظيف عندما يحتاج العميل الي تنظيف المنزل يبحث عن شركة تقدم له تلك الخدمه مع توافر شروط الجوده المطلوبه وهذا ما نوفره لعملائنا الكرام وايضا عندما يتعلق الامر بمكافحة الحشرات فنحن نوفر افضل الفنيين واحدث السيارات لعملية مكافحة الحشرات والقضاء عليها بالخرج كما وفرنا قسم خاص بنقل الاثاث بما يساعد عملائنا الكرام علي نقل الاثاث دون عناء
ارقام شركات تنظيف خزانات بالرياض
شركات تنظيف مساجد بالرياض
وتلك بعض خدماتنا التي نوفرها في عدة مدن باسعار لا تقبل التنافس وباحدث المعدات
ارقام شركات مكافحة حشرات بالرياض
مكافحة الفئران بالرياض
شركة مكافحة الحمام بالرياض
شركة تركيب غرف نوم بالرياض

قمم التميز said...


الاثاث من الاشياء التى نستطيع ان نبذل فية الكثير من الجهد والوقت من اجل ان يتم القيام باعمال النقل من مكان الى اخر سواء الى اى مكان فى المملكة او اى مكان خارج المملكة ، فاعمال النقل من الخدمات التى تبدو لنا انها سهلة وبسيطة الا انة فى نهاية الامر من الخدمات التى تؤدى الى التعرض الى مشاكل كثيرا من الصعب ان يتم القيام بحلها من الكسر شركة شراء اثاث مستعمل بالرياض
والخدش والتلفيات والضياع ،شركة قمم التميز من اهم وافضل الشركات التى تحقق اعلى مستوى من خدمات النقل للاثاث والقيام بالاتفاق مع مركز التعاون الخليجى من اجل ان يتم الحفاظ على الاثاث ضد اى مشكلة ، فاذا كنت فى حيرة من امر النقل فتاكد انك الان تمتلك افضل الشركات المميزة الخاصة باعمال النقل من خلال الاعتماد على توفير عدد من الخدمات المميزة . شراء اثاث مستعمل
شركة قمم التميز على وعى كبير باعمال النقل والتى تحقق افضل مستوى من خدمات النقل التى تؤكد ان الاثاث يتم الانتقال من مكان الى اخر دون ان يتم التعرض الى اى مشكلة من اهم الخدمات المقدمة الاتى :- شراء الاثاث المستعمل بالرياض
شركة تخزين اثاث
شراء اثاث مستعمل شمال الرياض
تخزين الاثاث من المهام التى نجتاج الية فى اوقات معينة اثناء الانتقال من شقة الى اخر او القيام بالسفر لفترات طويلة ، فالحرارة المرتفعة والرطوبة والاتربة الناعمة تؤدى الى ظهور التشققات و تؤدى الى التكسير المفاجىء للاخشاب ، فاذا كنت فى حيرة من اعمال النقل فتعاون مع شركة المتخصصة فى اعمال التخزين من الامور التى لابد من القيام بية بطريقة مميزة على ايدى متخصصين فى القيام بهذة الخدمة شركات شراء الاثاث المستعمل بالرياض
شركة قمم التميز من اهم الشركات التى تقوم بانشاء مستودعات طبقا لمعاير ذات جودة مميزة والتى تساعد فى الحفاظ على الاثاث ضد اى عيوب او اى مشكلات ارقام شراء الاثاث المستعمل بالرياض
تظهر مع مرور مدة التخزين بالاضافة الى ان المستودعات مقسمة من الداخل الى اماكن مخصصه للزجاج واماكن مخصصة للاخشاب وهكذا حتى يتم الحفاظ على الاثاث فعليك ان تتعاون وتتواصل مع الارقام المتواجدة على الصفحة من اجل ان تتم الحفاظ على الاثاث ضد اى تغيرات من الممكن ان تحدث ، بالاضافة الى اننا نقدم عقود مميزة فى اعمال التخزين فى مقابل ارخص الاسعار
محلات شراء الاثاث المستعمل بالرياض
حقين شراء الاثاث المستعمل بالرياض




Ella Johanson said...

روش‌های مختلفی برای درمان سریع چاقی که بیش از حد اضافه وزن دارند یا تحت تأثیر چاقی از بیماری زمینه‌ای رنج می‌برند، وجود دارد. در هر یک از این روش‌ها با تکنیکی خاص حجم معده را تغییر می‌دهند. برای مثال با کمک روشی به نام بالون معده، بیشتر فضای خالی معده را با بالونی از آب یا هوا پر کرده، در روش حلقه معده، آن را تنگ و با اسلیو معده باریک و با کمک بای‌ پس معده قسمتی از معده و روده را برمی‌دارند. اگرچه هر کدام از این روش‌های جراحی چاقی خطرات و عوارض مربوط به خود مانند احتمال عفونت، فتق و لخته شدن خون را دارند و ممکن است فرد را مجبور به پیگیری‌های مداوم کنند، اما نتایج حاصل از آن‌ها و میزان موفقیت‌ شان در درمان سریع چاقی فرد را علی‌رغم مشکلات احتمالی جذب خواهند کرد.

Demi Alberts said...

روش‌های مختلفی برای درمان سریع چاقی که بیش از حد اضافه وزن دارند یا تحت تأثیر چاقی از بیماری زمینه‌ای رنج می‌برند، وجود دارد. در هر یک از این روش‌ها با تکنیکی خاص حجم معده را تغییر می‌دهند. برای مثال با کمک روشی به نام بالون معده، بیشتر فضای خالی معده را با بالونی از آب یا هوا پر کرده، در روش حلقه معده، آن را تنگ و با اسلیو معده باریک و با کمک بای‌ پس معده قسمتی از معده و روده را برمی‌دارند. اگرچه هر کدام از این روش‌های جراحی چاقی خطرات و عوارض مربوط به خود مانند احتمال عفونت، فتق و لخته شدن خون را دارند و ممکن است فرد را مجبور به پیگیری‌های مداوم کنند، اما نتایج حاصل از آن‌ها و میزان موفقیت‌ شان در درمان سریع چاقی فرد را علی‌رغم مشکلات احتمالی جذب خواهند کرد.

Demi Alberts said...

جراحی اسلیو معده
نحوه گذاشتن بالون معده
درمان چاقی با جراحی بای پس معده

شركة الحرمين said...

شركة تسليك مجارى بالاحساء

شركة تسليك مجارى بالجبيل

شركة تسليك مجارى بالخبر

شركة تسليك مجارى بالدمام


شركة تسليك مجارى بالرياض

شركة تسليك مجارى بالقصيم

شركة تسليك مجارى بالقطيف

Miriam Steve said...

I always have the best time browsing, especially if i find quality and relevant information. This is not the only post that have made my day, since as i was looking at other posts i found a page on cover letter writing. You can get more information on this, by simply sending a quote that reads i need to Pay Someone To Write A Cover Letter. Visit the link and find the best information there is to offer.

Yasir Jamal said...

I’m impressed with the special and informative contents that you just offer in such short timing.

Dubai SEO company

Alireza said...

مخاطب

دانلود موزیک

دانلود آهنگ جدید

دانلود آهنگ

karamath sheik said...

Hai,

Check out our now venture called
https://www.supportsocial.in
digital marketing company bangalore
digital marketing company chennai
digital marketing company india