การกำหนดให้แสดง section ของฟอร์มโดยเปลี่ยนค่าใน input เหมือน Joget: กำหนดการแสดงไม่แสดง section ด้วย input มันไม่ค่อยจะเป็นธรรมชาติเท่าไหร่ ผู้ใช้จะคุ้นเคยกับ tabs มากกว่า
ทำได้โดย
- ให้ทำตามวิธี Joget: กำหนดการแสดงไม่แสดง section ด้วย input ก่อน
- ให้ลาก Custom HTML มาในตำแหน่งที่ต้องการ ใส่ javascript ตามตัวอย่าง
section tabs 12345678910111213141516171819<
ul
class
=
"nav nav-tabs"
id
=
"tabsA"
>
<
li
class
=
"nav-item"
>
<
a
class
=
"active nav-link show"
data-toggle
=
"tab"
href
=
"#section1"
>Section 1</
a
>
</
li
>
<
li
class
=
"nav-item"
>
<
a
class
=
"nav-link"
data-toggle
=
"tab"
href
=
"#section2"
>Section 2</
a
>
</
li
>
<
li
class
=
"nav-item"
>
<
a
class
=
"nav-link"
data-toggle
=
"tab"
href
=
"#section3"
>Section 3</
a
>
</
li
>
</
ul
>
<
script
src
=
"/jw/assets/scripts.js"
></
script
>
<
script
>
$(document).ready(function() {
navSection();
});
</
script
>
- ไฟล์ javascript ที่เก็บ function แยกเอาไว้ reused ได้หลายๆ ครั้ง
/jw/assets/scripts.js 12345678910111213141516171819202122232425/*
pitt phunsanit
show / hide section with tabs
version 1
*/
function
navSection() {
let
hash = window.location.hash.substr(1);
let
visibilityControl = $(
"#visibilityControl"
);
let
tabsA = $(
"#tabsA"
);
if
(hash != visibilityControl.val()) {
$(
'a[href="#'
+ hash).click();
visibilityControl.val(hash);
}
$("li > a
", tabsA).on("
click
", function() {
visibilityControl
.val(
$(this)
.attr("
href
")
.substr(1)
)
.trigger("
change");
});
}
การแสดงไม่แสดง form section จะเห็นเป็น tabs ธรรมดาๆ ดูเป็นธรรมชาติขึ้นมากกว่าเดิม ตัวอย่างฟอร์ม
1 | { "className" : "org.joget.apps.form.model.Form" , "properties" :{ "id" : "sectionTabs" , "loadBinder" :{ "className" : "org.joget.apps.form.lib.WorkflowFormBinder" }, "tableName" : "prototypes" , "description" : "" , "name" : "Section Tabs" , "storeBinder" :{ "className" : "org.joget.apps.form.lib.WorkflowFormBinder" }}, "elements" :[{ "elements" :[{ "elements" :[{ "className" : "org.joget.apps.form.lib.HiddenField" , "properties" :{ "id" : "visibilityControl" , "workflowVariable" : "" , "value" : "section1" , "useDefaultWhenEmpty" : "" }},{ "className" : "org.joget.apps.form.lib.CustomHTML" , "properties" :{ "id" : "dynamicTabsA" , "autoPopulate" : "" , "value" : "<ul class=\"nav nav-tabs\" id=\"tabsA\">\n <li class=\"nav-item\">\n <a class=\"active nav-link show\" data-toggle=\"tab\" href=\"#section1\">Section 1<\/a>\n <\/li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" data-toggle=\"tab\" href=\"#section2\">Section 2<\/a>\n <\/li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" data-toggle=\"tab\" href=\"#section3\">Section 3<\/a>\n <\/li>\n<\/ul>\n<script src=\"\/jw\/assets\/scripts.js\"><\/script>\n<script>\n $(document).ready(function() {\n\n navSection();\n\n });\n<\/script>" , "label" : "" }}], "className" : "org.joget.apps.form.model.Column" , "properties" :{ "width" : "100%" }}], "className" : "org.joget.apps.form.model.Section" , "properties" :{ "id" : "section1" , "loadBinder" :{ "className" : "" , "properties" :{}}, "visibilityControl" : "" , "regex" : "" , "visibilityValue" : "" , "storeBinder" :{ "className" : "" , "properties" :{}}, "permission" :{ "className" : "" , "properties" :{}}, "label" : "" }},{ "elements" :[{ "elements" :[{ "className" : "org.joget.apps.form.lib.TextField" , "properties" :{ "id" : "field1" , "readonlyLabel" : "" , "workflowVariable" : "" , "maxlength" : "" , "encryption" : "" , "validator" :{ "className" : "" , "properties" :{}}, "value" : "" , "label" : "Section 1" , "readonly" : "" , "size" : "" }}], "className" : "org.joget.apps.form.model.Column" , "properties" :{ "width" : "100%" }}], "className" : "org.joget.apps.form.model.Section" , "properties" :{ "id" : "section1" , "loadBinder" :{ "className" : "" , "properties" :{}}, "visibilityControl" : "visibilityControl" , "regex" : "" , "visibilityValue" : "section1" , "storeBinder" :{ "className" : "" , "properties" :{}}, "permission" :{ "className" : "" , "properties" :{}}, "label" : "Section 1" }},{ "elements" :[{ "elements" :[{ "className" : "org.joget.apps.form.lib.TextField" , "properties" :{ "id" : "field2" , "readonlyLabel" : "" , "workflowVariable" : "" , "maxlength" : "" , "encryption" : "" , "validator" :{ "className" : "" , "properties" :{}}, "value" : "" , "label" : "Section 2" , "readonly" : "" , "size" : "" }}], "className" : "org.joget.apps.form.model.Column" , "properties" :{ "width" : "100%" }}], "className" : "org.joget.apps.form.model.Section" , "properties" :{ "id" : "section2" , "loadBinder" :{ "className" : "" , "properties" :{}}, "visibilityControl" : "visibilityControl" , "regex" : "" , "visibilityValue" : "section2" , "storeBinder" :{ "className" : "" , "properties" :{}}, "permission" :{ "className" : "" , "properties" :{}}, "label" : "Section 2" }},{ "elements" :[{ "elements" :[{ "className" : "org.joget.apps.form.lib.TextField" , "properties" :{ "id" : "field3" , "readonlyLabel" : "" , "workflowVariable" : "" , "maxlength" : "" , "encryption" : "" , "validator" :{ "className" : "" , "properties" :{}}, "value" : "" , "label" : "Section 3" , "readonly" : "" , "size" : "" }}], "className" : "org.joget.apps.form.model.Column" , "properties" :{ "width" : "100%" }}], "className" : "org.joget.apps.form.model.Section" , "properties" :{ "id" : "section3" , "loadBinder" :{ "className" : "" , "properties" :{}}, "visibilityControl" : "visibilityControl" , "regex" : "" , "visibilityValue" : "section3" , "storeBinder" :{ "className" : "" , "properties" :{}}, "permission" :{ "className" : "" , "properties" :{}}, "label" : "Section 3" }}]} |