If your customers don't know the products you should not make it auto-complete.
You can have cascading dropdowns. Select a category which filters the product.
On changing the category you re-filter the products:
$categories.on("change", function(){
getProducts();
});
function getProducts() {
$products.empty();
var category = $categories.val();
products.forEach(function(product) {
if (product.category === category) {
$products.append("<option>" + product.value + "</option>");
};
});
}
The getProducts()
can also be an ajax call if you don't want to pull down all the products at once. The above is only an example.
DEMO - Filtering Products by category - Edited to include sample of line items
However, a completely different option could be to render out a graphical list of products based on your category selection.
For example, similar to:
function renderProductDetail(productName){
var lineItem = "<br /><div><img src='http://www.placehold.it/140x100' /><span>" + productName + ": Details can go here....</span><button type'button'>Select</button></div>";
$productDetails.append(lineItem);
}
That way the customer would have for each product an image and a description. Each item has a little select button/link beside it and so on.
That's how most web-sites do it that sell products, komplett, dabs, amazon, etc...