Не смотря на то, что у библиотеки Webix есть свой компонент Form, также существует возможность создавать отдельные формы с помощью только HTML. Для этого используется специальный компонент HTMLForm.
Существует три способа встроить форму в компонент:
Свойство content может ссылаться как на ID контейнера DIV в котором находится форма, так и на document.body, если оно включено непосредственно в body вашей веб-страницы.
HTMLForm, свойство content
<div id="areaA">
<input type="text" name="title" value="" placeholder="Book title" /><br/>
<input type="text" name="author" value="" placeholder="Author" /><br/>
</div>
<script type="text/javascript">webix.ui({
view:"htmlform",
// совпадает с ID контейнера div
content: "areaA",
// или, если форма не включена в div
content: document.body
});
</script>
Related sample: Initialization in Document Body
HTMLform, свойство template
<div id="tpl">
<input type="text" name="title" value="" placeholder="Book title" /><br/>
<input type="text" name="author" value="" placeholder="Author" /><br/>
</div>
<script type="text/javascript">webix.ui({
view:"htmlform",
template: "html->tpl", // совпадает с ID контейнера div
...
});
</script>
Related sample: Initialization in Layout
HTMLform, HTTP
webix.ui({
id: "htmlform1",
view:"htmlform",
template: "http->data/form.html",
...
});
Related sample: Using HTTP-template
webix.ui({
view:"htmlform",
src:"myform.php"
});
Данные формы можно послать на сервер одним из следующих способов:
1 . Используя Webix Ajax helper:
webix.ajax().post("some.php", form.getValues());
// с колбэком
webix.ajax().post("some.php", form.getValues(), function(text, data, xhr){ });
2 . Используя метод webix.send, который эмулирует отправку HTML формы:
webix.send("come.php", form.getValues());
3 . Не напрямую, через компонент bound master или DataCollection:
Метод удобен, когда форма используется для редактирования данных основного компонента (DataTable, Tree, List, и т.д.). В этом случае важны данные главного компонента, а не формы. Форма сохраняет данные в главном компоненте, в то время как мастер обрабатывает серверную часть.
// данные из выбранного элемента списка помещаются в форму
form.bind(list);
// отправляет данные обратно в элемент списка
form.save()
Концепция Data binding подробно рассмотрена в отдельной статье.