1e41f4b71Sopenharmony_ci# <search> Development 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciThe **<search>** component provides an input area for users to search. For details, see [search](../reference/apis-arkui/arkui-js/js-components-basic-search.md). 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## Creating a <search> Component 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ciCreate a **<search>** component in the .hml file under **pages/index**. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci```html 13e41f4b71Sopenharmony_ci<!-- xxx.hml--> 14e41f4b71Sopenharmony_ci<div class="container"> 15e41f4b71Sopenharmony_ci <search></search> 16e41f4b71Sopenharmony_ci</div> 17e41f4b71Sopenharmony_ci``` 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci```css 21e41f4b71Sopenharmony_ci/* xxx.css */ 22e41f4b71Sopenharmony_ci.container { 23e41f4b71Sopenharmony_ci width: 100%; 24e41f4b71Sopenharmony_ci height: 100%; 25e41f4b71Sopenharmony_ci flex-direction: column; 26e41f4b71Sopenharmony_ci align-items: center; 27e41f4b71Sopenharmony_ci justify-content: center; 28e41f4b71Sopenharmony_ci background-color: #F1F3F5; 29e41f4b71Sopenharmony_ci} 30e41f4b71Sopenharmony_ci``` 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci## Setting Attributes 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ciSet the **hint**, **icon**, and **searchbutton** to define the hint text, icon, and search button at the end of the search box. 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci```html 41e41f4b71Sopenharmony_ci<!-- xxx.hml--> 42e41f4b71Sopenharmony_ci<div class="container"> 43e41f4b71Sopenharmony_ci <search hint="Please enter the search content" searchbutton="search" icon="/common/search1.png"></search> 44e41f4b71Sopenharmony_ci</div> 45e41f4b71Sopenharmony_ci``` 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci```css 49e41f4b71Sopenharmony_ci/* xxx.css */ 50e41f4b71Sopenharmony_ci.container { 51e41f4b71Sopenharmony_ci width: 100%; 52e41f4b71Sopenharmony_ci height: 100%; 53e41f4b71Sopenharmony_ci flex-direction: column; 54e41f4b71Sopenharmony_ci align-items: center; 55e41f4b71Sopenharmony_ci justify-content: center; 56e41f4b71Sopenharmony_ci background-color: #F1F3F5; 57e41f4b71Sopenharmony_ci} 58e41f4b71Sopenharmony_ci``` 59e41f4b71Sopenharmony_ci 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci## Adding Styles 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ciSet **color**, **placeholder-color**, and **caret-color** to set the text color, hint text color, and cursor color of the search box. 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci```html 69e41f4b71Sopenharmony_ci<!-- xxx.hml--> 70e41f4b71Sopenharmony_ci<div class="container"> 71e41f4b71Sopenharmony_ci <search hint="Please enter the search content" searchbutton="search" ></search> 72e41f4b71Sopenharmony_ci</div> 73e41f4b71Sopenharmony_ci``` 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci```css 77e41f4b71Sopenharmony_ci/* xxx.css */ 78e41f4b71Sopenharmony_ci.container { 79e41f4b71Sopenharmony_ci width: 100%; 80e41f4b71Sopenharmony_ci height: 100%; 81e41f4b71Sopenharmony_ci flex-direction: column; 82e41f4b71Sopenharmony_ci align-items: center; 83e41f4b71Sopenharmony_ci justify-content: center; 84e41f4b71Sopenharmony_ci background-color: #F1F3F5; 85e41f4b71Sopenharmony_ci} 86e41f4b71Sopenharmony_cisearch{ 87e41f4b71Sopenharmony_ci color: black; 88e41f4b71Sopenharmony_ci placeholder-color: black; 89e41f4b71Sopenharmony_ci caret-color: red; 90e41f4b71Sopenharmony_ci} 91e41f4b71Sopenharmony_ci``` 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci## Binding Events 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ciAdd the **change**, **search**, **submit**, **share**, and **translate** events to the **<search>** component to perform operations on the input information. 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci```html 102e41f4b71Sopenharmony_ci<!-- xxx.hml--> 103e41f4b71Sopenharmony_ci<div class="container"> 104e41f4b71Sopenharmony_ci <text style="margin-left: -7px;"> 105e41f4b71Sopenharmony_ci <span>Enter text and then touch and hold what you've entered</span> 106e41f4b71Sopenharmony_ci </text> 107e41f4b71Sopenharmony_ci <search hint="Please enter the search content" searchbutton="search" onsearch="search" onchange="change" ontranslate="translate" onshare="share" 108e41f4b71Sopenharmony_ci onsubmit="submit"> 109e41f4b71Sopenharmony_ci </search> 110e41f4b71Sopenharmony_ci</div> 111e41f4b71Sopenharmony_ci``` 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci```css 115e41f4b71Sopenharmony_ci/* xxx.css */ 116e41f4b71Sopenharmony_ci.container { 117e41f4b71Sopenharmony_ci width: 100%; 118e41f4b71Sopenharmony_ci height: 100%; 119e41f4b71Sopenharmony_ci flex-direction: column; 120e41f4b71Sopenharmony_ci align-items: center; 121e41f4b71Sopenharmony_ci justify-content: center; 122e41f4b71Sopenharmony_ci background-color: #F1F3F5; 123e41f4b71Sopenharmony_ci} 124e41f4b71Sopenharmony_citext{ 125e41f4b71Sopenharmony_ci width: 100%; 126e41f4b71Sopenharmony_ci font-size: 25px; 127e41f4b71Sopenharmony_ci text-align: center; 128e41f4b71Sopenharmony_ci margin-bottom: 100px; 129e41f4b71Sopenharmony_ci} 130e41f4b71Sopenharmony_ci``` 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci```js 134e41f4b71Sopenharmony_ci// index.js 135e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction' 136e41f4b71Sopenharmony_ciexport default { 137e41f4b71Sopenharmony_ci search(e){ 138e41f4b71Sopenharmony_ci promptAction.showToast({ 139e41f4b71Sopenharmony_ci message: e.value, 140e41f4b71Sopenharmony_ci duration: 3000, 141e41f4b71Sopenharmony_ci }); 142e41f4b71Sopenharmony_ci }, 143e41f4b71Sopenharmony_ci translate(e){ 144e41f4b71Sopenharmony_ci promptAction.showToast({ 145e41f4b71Sopenharmony_ci message: e.value, 146e41f4b71Sopenharmony_ci duration: 3000, 147e41f4b71Sopenharmony_ci }); 148e41f4b71Sopenharmony_ci }, 149e41f4b71Sopenharmony_ci share(e){ 150e41f4b71Sopenharmony_ci promptAction.showToast({ 151e41f4b71Sopenharmony_ci message: e.value, 152e41f4b71Sopenharmony_ci duration: 3000, 153e41f4b71Sopenharmony_ci }); 154e41f4b71Sopenharmony_ci }, 155e41f4b71Sopenharmony_ci change(e){ 156e41f4b71Sopenharmony_ci promptAction.showToast({ 157e41f4b71Sopenharmony_ci message: e.value, 158e41f4b71Sopenharmony_ci duration: 3000, 159e41f4b71Sopenharmony_ci }); 160e41f4b71Sopenharmony_ci }, 161e41f4b71Sopenharmony_ci submit(e){ 162e41f4b71Sopenharmony_ci promptAction.showToast({ 163e41f4b71Sopenharmony_ci message: 'submit', 164e41f4b71Sopenharmony_ci duration: 3000, 165e41f4b71Sopenharmony_ci }); 166e41f4b71Sopenharmony_ci } 167e41f4b71Sopenharmony_ci} 168e41f4b71Sopenharmony_ci``` 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci## Example Scenario 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ciIn this example, you can select the **<search>**, **<textarea>**, or **<input>** component from the drop-down list box to implement the respective function. 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci```html 179e41f4b71Sopenharmony_ci<!-- xxx.hml--> 180e41f4b71Sopenharmony_ci<div style="flex-direction: column;align-items: center;justify-content: center; width: 100%;"> 181e41f4b71Sopenharmony_ci <select class="slt1" id="slt1" onchange="setfield"> 182e41f4b71Sopenharmony_ci <option value="search">search</option> 183e41f4b71Sopenharmony_ci <option value="textarea">Textarea</option> 184e41f4b71Sopenharmony_ci <option value="input">Input</option> 185e41f4b71Sopenharmony_ci </select> 186e41f4b71Sopenharmony_ci <div if="{{showsearch}}" style="flex-direction: column;align-items: center;margin-top: 50px;height: 400px;justify-content: space-around;"> 187e41f4b71Sopenharmony_ci <search class="field" id="search1" hint="search1" onsubmit="submit" onchange="change" ></search> 188e41f4b71Sopenharmony_ci <search class="field" id="search2" icon="common/search1.png" hint="search2" show="{{showsec}}" onsubmit="submit" onchange="change" ></search> 189e41f4b71Sopenharmony_ci </div> 190e41f4b71Sopenharmony_ci <div if="{{showtextarea}}" style="flex-direction: column;align-items: center;margin-top: 50px;height: 400px;justify-content: space-around;"> 191e41f4b71Sopenharmony_ci <textarea class="field" id="textarea1" extend="true" placeholder="textarea1" onchange="change" ></textarea> 192e41f4b71Sopenharmony_ci <textarea class="field" id="textarea2" extend="true" placeholder="textarea2" onchange="change" show="{{showsec}}"></textarea> 193e41f4b71Sopenharmony_ci </div> 194e41f4b71Sopenharmony_ci <div if="{{showinput}}" style="flex-direction: column;align-items: center;margin-top: 50px;height: 400px;justify-content: space-around;"> 195e41f4b71Sopenharmony_ci <input type="text" class="field" id="input1" placeholder="input1" onchange="change" ></input> 196e41f4b71Sopenharmony_ci <input type="text" class="field" id="input2" placeholder="input2" onchange="change" show="{{showsec}}"></input> 197e41f4b71Sopenharmony_ci </div> 198e41f4b71Sopenharmony_ci</div> 199e41f4b71Sopenharmony_ci``` 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci```css 203e41f4b71Sopenharmony_ci/* xxx.css */ 204e41f4b71Sopenharmony_ci.field { 205e41f4b71Sopenharmony_ci width: 80%; 206e41f4b71Sopenharmony_ci color: mediumaquamarine; 207e41f4b71Sopenharmony_ci font-weight: 600; 208e41f4b71Sopenharmony_ci placeholder-color: orangered; 209e41f4b71Sopenharmony_ci} 210e41f4b71Sopenharmony_ci.slt1{ 211e41f4b71Sopenharmony_ci font-size: 50px; 212e41f4b71Sopenharmony_ci position: absolute; 213e41f4b71Sopenharmony_ci left: 50px; 214e41f4b71Sopenharmony_ci top: 50px; 215e41f4b71Sopenharmony_ci} 216e41f4b71Sopenharmony_ci``` 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci```js 220e41f4b71Sopenharmony_ci// index.js 221e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction'; 222e41f4b71Sopenharmony_ciexport default { 223e41f4b71Sopenharmony_ci data: { 224e41f4b71Sopenharmony_ci showsearch: true, 225e41f4b71Sopenharmony_ci showtextarea: false, 226e41f4b71Sopenharmony_ci showinput: false, 227e41f4b71Sopenharmony_ci showsec: true, 228e41f4b71Sopenharmony_ci }, 229e41f4b71Sopenharmony_ci setfield(e) { 230e41f4b71Sopenharmony_ci this.field = e.newValue 231e41f4b71Sopenharmony_ci if (e.newValue == 'search') { 232e41f4b71Sopenharmony_ci this.showsearch = true 233e41f4b71Sopenharmony_ci this.showtextarea = false 234e41f4b71Sopenharmony_ci this.showinput = false 235e41f4b71Sopenharmony_ci } else if (e.newValue == 'textarea') { 236e41f4b71Sopenharmony_ci this.showsearch = false 237e41f4b71Sopenharmony_ci this.showtextarea = true 238e41f4b71Sopenharmony_ci this.showinput = false 239e41f4b71Sopenharmony_ci } else { 240e41f4b71Sopenharmony_ci this.showsearch = false 241e41f4b71Sopenharmony_ci this.showtextarea = false 242e41f4b71Sopenharmony_ci this.showinput = true 243e41f4b71Sopenharmony_ci } 244e41f4b71Sopenharmony_ci }, 245e41f4b71Sopenharmony_ci submit(e) { 246e41f4b71Sopenharmony_ci promptAction.showToast({ 247e41f4b71Sopenharmony_ci message: 'Search!', 248e41f4b71Sopenharmony_ci duration: 2000 249e41f4b71Sopenharmony_ci }) 250e41f4b71Sopenharmony_ci }, 251e41f4b71Sopenharmony_ci change(e) { 252e41f4b71Sopenharmony_ci promptAction.showToast({ 253e41f4b71Sopenharmony_ci message: 'Content:'+ e.text, 254e41f4b71Sopenharmony_ci duration: 2000 255e41f4b71Sopenharmony_ci }) 256e41f4b71Sopenharmony_ci } 257e41f4b71Sopenharmony_ci} 258e41f4b71Sopenharmony_ci``` 259e41f4b71Sopenharmony_ci 260e41f4b71Sopenharmony_ci 261