na wstępie - starałem się szukać ale nie wiem nawet jak sformułować dobre zapytanie.
Chcę wykorzystać ten skrypt do dodawania składników do przepisów.
Zasady jakie mnie interesują to: dynamiczne dodawanie inputów (start od jednego), autocomplete z bazy danych z opisem w dwóch językach oraz zblokowanie aby można było dodać tylko jeden składnik do jednego inputa.
Skrypt:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Autocomplete - Custom data and display</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css"> <style> #project-label { display: block; font-weight: bold; margin-bottom: 1em; } #project-description { margin: 0; padding: 0; } </style> <script> $(function() { var projects = [ { value: "jquery", label: "jQuery", desc: "the write less, do more, JavaScript library" }, { value: "jquery-ui", label: "jQuery UI", desc: "the official user interface library for jQuery" }, { value: "sizzlejs", label: "Sizzle JS", desc: "a pure-JavaScript CSS selector engine" } ]; $( "#project" ).autocomplete({ minLength: 0, source: projects, focus: function( event, ui ) { $( "#project" ).val( ui.item.label ); return false; }, select: function( event, ui ) { $( "#project" ).val( ui.item.label ); $( "#project-id" ).val( ui.item.value ); $( "#project-description" ).html( ui.item.desc ); $( "#project-icon" ).attr( "src", "images/" + ui.item.icon ); return false; } }) .autocomplete( "instance" )._renderItem = function( ul, item ) { return $( "<li>" ) .append( "<a>" + item.label + "<br>" + item.desc + "</a>" ) .appendTo( ul ); }; }); </script> </head> <body> <input id="project"> <input type="hidden" id="project-id"> <p id="project-description"></p> </body> </html>
Moje główne pytanie brzmi: Jak mogę spowodować aby #project był dynamiczny - pasował do inputów z id: project1, project2... project999
Jak pobierać dane z bazy do skryptu mnie więcej wiem, więc to nie jest problem.
Kwestię dynamicznego dodawania inputów rozwiązałem następująco:
<script> var z = 2; $(document).ready (function() { $('input[name="dodajskladnik"]').click (function(){ $('#project').append ("<inputy id=\"project"+(z)+"\" name=\"project"+(z)+"\".... />"); z++; }); }); </script>
Z góry dziękuję za pomoc