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![en-us_image_0000001276003537](figures/en-us_image_0000001276003537.png)
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![en-us_image_0000001275923017](figures/en-us_image_0000001275923017.png)
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![en-us_image_0000001232003020](figures/en-us_image_0000001232003020.gif)
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci## Binding Events
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ciAdd the **change**, **search**, **submit**, **share**, and **translate** events to the **&lt;search&gt;** 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![en-us_image_0000001231683164](figures/en-us_image_0000001231683164.gif)
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci## Example Scenario
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ciIn this example, you can select the **&lt;search&gt;**, **&lt;textarea&gt;**, or **&lt;input&gt;** 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![en-us_image_0000001232003024](figures/en-us_image_0000001232003024.gif)
261