Имеется форма отвечает за добавление новой записи и редактирование одновременно.
Есть поле input с autocomplete функцией, поля надо сделать что бы при добавлении новой записи поле было пустое, сейчас автоматический первое значение из БД подставляется.
CODE ( javascript):
скопировать код в буфер обмена
function (e) { var sel = $(e).hide(); var f_sel= $("<input/>").insertAfter(sel); if ($(e).parents("form").find("input#id").val() != "") f_sel.val($(sel).find("option:selected").text()); f_sel.autocomplete({ source: "/client/searchClients", minLength: 1, focus: function (event, ui) { if (!$(e).find("option[value="+ui.item.id+"]")) $(e).append($("<option>", { value : ui.item.id }).text(ui.item.value)); $(e).find("option[value="+ui.item.id+"]").attr("selected","selected"); }, select: function (event, ui) { $(e).find("option[value="+ui.item.id+"]").attr("selected","selected"); } }); }
Если строчку f_sel.val($(sel).find("option:selected").text()); заккоментировать, тогда автоматический запись не подставляется и поле пустое, но тогда и при редактировании она пустая, как можно сделать проверку?
Или может она есть if ($(e).parents("form").find("input#id").val() != ""), но не верное работает
А это серверная часть, можно как-то сюда можно...PHP:
скопировать код в буфер обмена
public function actionSearchClients() { $term = $_GET['term']; $clientRows = Clients::model()->findAll(); $i=0; foreach ($clientRows as $client) { $fio = $client->surname.' '.$client->firstname .' ('. $client->passport_number.')' ; $clients[$i]['id'] = $client->id; $clients[$i]['value'] = $fio; $i++; } } }
спс.Ув.(Отредактировано автором: 16 Февраля, 2015 - 18:21:16)
|