Searching for that perfect co*cktail dress for your hot date or girl’s night out? Turn up the heat in our range of party-ready co*cktail dresses. From smoking hot red co*cktail dresses that’ll attract all the right attention to elegant, classic black co*cktail dresses for a forever on-point look, Pink Boutique will always get you on the best dressed list. Whether you’re wanting to show off your body in a figure-hugging midi or keep it fun and flirty in a mini co*cktail dress, you’ll be spoilt for choice at PB.
Maxi Dresses Mini Dresses Midi Dresses Day Dresses Occasion Dresses Little Black Dresses
Category
- Dresses (413)
- Mini Dresses (127)
- Midi Dresses (187)
- Maxi Dresses (36)
- Red Dresses
- Going out Dresses (164)
- Sequin Dresses
- Little Black Dresses
- Summer Dresses
- White Dresses
- Long Sleeve Dresses
- Wrap Dresses
- Skater Dresses
- Jumper Dresses
- Bandage Dresses
- Party Dresses
- Shirt Dresses
- Lace Dresses
- Prom Dresses (31)
- Occasion Dresses (147)
- Floral Dresses
- Bodycon Dresses
- Bardot Dresses
- Day Dresses
- Bra Friendly Dresses
- Bridesmaid Dresses
- Day to Night Dresses
- Dresses under £20 (46)
Clear all Tags
size
- 10
- 12
- 12-14
- 14
- 16
- 16-18
- 18
- 20
- 6
- 8
- 8-10
colour
- beige
- black
- blue
- brown
- camel
- champagne
- cobalt
- coral
- cream
- gold
- green
- grey
- hot pink
- khaki
- lilac
- mint green
- multi
- navy
- nude
- orange
- pink
- purple
- red
- rose gold
- silver
- teal
- white
'); } if (tagHolder.find('.'+currentTag ).length === 0) { tagHolder.find('.'+group ).append(''+ currentTag.replace('-', ' ') +''); } }; displayPriceTag = function(array) { currentTags.removeClass('hide'); currentTags.find('.group-price').remove(); var extraChar = $('.priceSlider').data('extra-char'); var lastArray = array.length - 1; tagHolder.append('
' + extraChar + array[0] +' - ' + extraChar + array[lastArray] + '
'); }; clearTags = function() { currentTags.find('.group').remove(); }; /** * Makes the query string for search results AJAX call */ function getQueryStr() { var searchUrl = '/search?type=product&view=collection-filters-ajax&q='; var qVal = ''; var excludeTag = ''; var val = ''; var initialQVal = ''; initialQVal = 'tag:"collection: dresses"+AND+tag:"co*cktail-dresses"+AND+tag:"instock"';qVal += initialQVal; // add sliders vals (only desktop filters to prevent dupe vals) $filterSlidersDesktop.filter('[data-tag-val]').each(function(index, el) { var val = $(this).attr('data-tag-val'); if (val.indexOf("+OR+") >= 0){ //qVal += val; if (index === 0) { if (qVal !== '') { qVal += '+AND+'; } qVal += val; } else { if (qVal !== '') { qVal += '+OR+'; } qVal += val; } }else{ val = val.replace("size-", "size:"); //console.log('val', val); if (val.indexOf("tag") >= 0){ qVal += '+AND+' + val + ''; }else{ qVal += '+AND+tag:"' + val + '"'; } } }); // add checkbox vals (only desktop filters to prevent dupe vals) $navGroupsDesktop.each(function(gIndex) { $selectedFilters = $(this).find('.active > a'); $selectedFilters.each(function(filterIndex) { var tagVal = $(this).attr('data-tag-val'); if (filterIndex === 0) { if (qVal !== '') { qVal += '+AND+'; } qVal += 'tag:"' + tagVal + '"'; } else { if (qVal !== '') { qVal += '+OR+'; } qVal += 'tag:"' + tagVal + '"'; } displayCurrentTags(tagVal); }); }); // if we have no selected filters, reload page to restore initial content if (qVal === initialQVal) { var url = window.location.href; if ( initialTag != undefined && url.indexOf(initialTag) != 1 ) { //console.log('contains' + initialTag); window.location.href = url.replace('/'+initialTag, ''); } else { window.location.reload(); } return false; } //qVal += '+NOT+tag:' + excludeTag; return searchUrl + qVal; } /** * Resets sort menu to default option, and disables menu * Since search result queries can't be sorted, this is called after * filter selections are made. */ function resetAndDisableSort() { // reset sort menu to default option $('#sortBy') .val( $('#sortBy option[default-selected]').val() ) .prop('disabled', true) .closest('.sort-filter') .css('visibility', 'hidden'); // remove ?sort_by= query string from URL window.history.replaceState({}, '', window.location.pathname) } /** * Gets filtered results from custom search template via AJAX & updates DOM */ function setFilteredResults(queryUrl, scrollTop) { // log absolute URLs of search query for easy query debugging var siteUrl = window.location.href .replace(window.location.pathname, '') .replace(window.location.search, '') .replace(window.location.hash, ''); if (!queryUrl) { return console.error('No valid queryUrl supplied.') } //console.log('queryUrl', siteUrl + queryUrl.replace(/\s/gi, '+')); $(".collection-sidebar-template .sort-filter").css("visibility", "hidden"); // hide sorting to stop random / incorrect results toggleAjaxControls(false); $.get(queryUrl, function(data) { var $newResults = $($(data).find('.results__items').html()); var $newPag = $($(data).find('.results__pagination').html()); var $newTopPag = $($(data).find('.results__pagination').html()); var $oldResults = $('.grid.collection-list'); $oldResults.replaceWith($newResults); $pagContainer.html($newPag); $pagTopContainer.html($newTopPag); var newResult = $newResults.find('.product-card').length; $('.products-count .number_products').text(newResult); resetAndDisableSort(); // scroll to top after content update (used for pag links) if (scrollTop) { $('html, body').animate({ scrollTop: '0' }); } // AJAX-ify pagination links on the first load if (!pagIsAjaxed) { $pagContainer.on('click', '.js-ajax-pagination a', function(e) { e.preventDefault(); var href = $(this).attr('href'); setFilteredResults(href, true); }); $pagTopContainer.on('click', '.js-ajax-pagination a', function(e) { e.preventDefault(); var href = $(this).attr('href'); setFilteredResults(href, true); }); pagIsAjaxed = true; } toggleAjaxControls(true); }); } /** * Enable/disable controls during/after AJAX loads * * @param {boolean} enable - true enables/false disables */ function toggleAjaxControls(enable) { $filterLinks.toggleClass('ajax-disabled', !enable); $filterSliders.toggleClass('ajax-disabled', !enable); $pagContainer.find('a').toggleClass('ajax-disabled', !enable); } /** * Updates slider description text as value changes */ function handleRangeSliderChange(filterName, filterData) { var sliderVal = filterData.from; var slidersSelector = '.' + filterName + 'Slider'; // update both sliders (mobile/desktop) $(slidersSelector).each(function() { // update slider value text var $navGroup = $(this).closest('.nav-group'); var $sliderTxts = $navGroup.find('.slider__text p'); var $sliderValTxt = $sliderTxts.eq(sliderVal); if ($sliderValTxt.length) { $navGroup .find('.extra-description') .html($sliderValTxt.html()); // if we have multiple slider texts, just none for this val, blank it // if we only have one slider text p, do nothing (display for all values) } else if ($sliderTxts.length > 1) { $navGroup .find('.extra-description') .html(''); } }); } /** * Updates slider values and retrieves new results */ function handleRangeSliderFinish(filterName, filterData, filterFullRange) { fullSliderVal = [] sliderVal = filterData.from_value; sliderValTo = filterData.to_value; var slidersSelector = '.' + filterName + 'Slider'; var sliderArray = filterFullRange.split(", "); $.each(sliderArray, function(index, value) { if ( parseInt(value) > parseInt(sliderVal) ){ if( parseInt(value) < parseInt(sliderValTo) ){ fullSliderVal.push(parseInt(value)); } } }); if (sliderVal == sliderValTo){ fullSliderVal.unshift(sliderVal); }else{ fullSliderVal.unshift(sliderVal); fullSliderVal.push(sliderValTo); } //console.log('fullSliderVal', fullSliderVal); displayPriceTag(fullSliderVal); var oldSliderVal = 0; var $sliderHolder = $(slidersSelector).first().closest('.slider__holder'); var hasVal = $sliderHolder[0].hasAttribute('data-val'); if (hasVal) { oldSliderVal = parseInt( $sliderHolder.attr('data-val'), 10 ); } // do nothing if value didn't change if (sliderVal === oldSliderVal) { //console.info('No slider value change.'); // return; } // update both sliders (mobile/desktop) $(slidersSelector).each(function() { // update slider value var slider = $(this).data('ionRangeSlider'); slider.update({ from_value: sliderVal, to_value: sliderValTo }); }); //console.log('sliderVal', sliderVal); var newQval = "" if (sliderVal === 0) { // 0 resets sliders to "no value" state $(slidersSelector) .closest('.slider__holder') .removeAttr('data-val data-tag-val'); } else { newQval = "" $.each(fullSliderVal, function(index, value) { //console.log('value', value); if(value != null){ if (index === 0) { newQval += 'tag:"' + filterName + '-' + value +'"'; }else{ newQval += '+OR+tag:"' + filterName + '-' + value +'"'; } } //console.log('newQval', newQval); }); // add value to DOM for getQueryStr() $(slidersSelector) .closest('.slider__holder') .attr('data-val', sliderVal) .attr('data-tag-val', newQval); } var queryStr = getQueryStr(); if (queryStr) { setFilteredResults(queryStr); } } function handleFilterClick(e) { e.preventDefault(); clearTags(); if ($(this).hasClass('ajax-disabled')) { return; } var tagVal = $(this).attr('data-tag-val'); // change all instances of this link in the DOM (mobile & desktop) var $allLinks = $('[data-tag-val="' + tagVal + '"]'); $allLinks.parent().toggleClass('active'); var queryStr = getQueryStr(); if (queryStr) { setFilteredResults(queryStr); } } function init() { setTagVals(); $filterLinks.on('click', handleFilterClick); checkInitialTags(); } init(); // export functions used in other Liquid templates window.handleRangeSliderFinish = handleRangeSliderFinish; window.handleRangeSliderChange = handleRangeSliderChange; }());