>웹 프론트엔드 >프런트엔드 Q&A >웹 프런트엔드에서 입력 상자를 만드는 방법

웹 프런트엔드에서 입력 상자를 만드는 방법

PHPz
PHPz원래의
2023-04-17 15:00:313688검색

웹 프론트 엔드 개발에서 입력 상자는 사용자가 텍스트, 숫자 및 기타 형태의 데이터를 입력하는 데 사용되는 기본 구성 요소입니다. 이 문서에서는 웹 프런트 엔드가 입력 상자를 구현하는 방법을 살펴보겠습니다.

  1. HTML

먼저 HTML 태그를 사용하여 입력 상자를 정의해야 합니다. HTML에서 일반적으로 사용되는 태그에는 <input>, <textarea></textarea><form></form> 등이 있습니다. <input><textarea><form>等等。

<input>标记用于创建单行输入框,例如:

<label for="username">用户名:</label>
<input type="text" id="username" name="username">

上面的前两行代码中,<label>标记用于为输入框添加描述,for属性的值应该和<input>标记的id属性值相同。这样在用户单击标签时,输入框就会获得焦点。第三行代码中,type属性的值为"text",表示我们创建的是一个文本输入框。

<textarea>标记用于创建多行输入框,例如:

<label for="comments">留言:</label>
<textarea id="comments" name="comments"></textarea>

相比于<input>标记,<textarea>标记的可编辑区域更大,可以在其中容纳多行文本。同样可以添加描述标签,为用户提供更好的操作体验。

<form>标记是一个容器,包含了一组输入项和一个提交按钮。例如:

<form action="login.php" method="post">
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username">
  <label for="password">密码:</label>
  <input type="password" id="password" name="password">
  <button type="submit">登录</button>
</form>

上面的代码中,<form>标记的actionmethod属性用于指定提交的URL和方法。<button>标记用于创建提交按钮,当用户单击按钮时,表单的数据就会被提交到服务器。

  1. CSS

使用标准的HTML标记创建输入框的好处在于,我们可以使用CSS来控制输入框的样式,实现更好的用户体验。例如,以下代码可以让输入框自适应父元素的宽度,增加美观程度:

input[type="text"], textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: none;
}

上面的代码中,box-sizing属性用于控制输入框的尺寸,padding属性用于控制内边距,border属性用于控制边框样式,border-radius属性用于控制边框圆角度数,resize属性用于控制输入框是否可以调整大小。

除了以上属性外,我们还可以使用CSS实现输入框的动画效果,如下:

input[type="text"]:focus,
textarea:focus {
  border-color: #666;
  outline: none;
  box-shadow: 0 0 10px #ccc;
}

当用户单击输入框时,上面的代码将会让输入框产生边框颜色的变化和简短的动画效果。这些样式的添加将会让您的站点更具吸引力,增加用户的参与度。

  1. JavaScript

最后,我们可以使用JavaScript来实现输入框的验证、提示以及其他一些交互效果。例如:

const usernameInput = document.querySelector('#username');
const passwordInput = document.querySelector('#password');

usernameInput.addEventListener('input', () => {
  const value = usernameInput.value.trim();

  if (value === '') {
    usernameInput.setCustomValidity('用户名不能为空!');
  } else {
    usernameInput.setCustomValidity('');
  }

  usernameInput.reportValidity();
});

passwordInput.addEventListener('input', () => {
  const value = passwordInput.value;

  if (value.length < 6 || value.length > 12) {
    passwordInput.setCustomValidity('密码长度必须在6-12个字符之间!');
  } else {
    passwordInput.setCustomValidity('');
  }

  passwordInput.reportValidity();
});

上面的代码中,我们使用了EventTarget.addEventListener()方法,来为输入框添加了一个输入事件的监听器。每当用户在输入框中输入内容时,就会触发这个监听器,我们可以在其中进行一些验证操作,例如检查输入是否为空、长度是否符合要求等等。使用setCustomValidity()方法来设定自定义提示信息,使用reportValidity()

<input> 태그는 한 줄 입력 상자를 만드는 데 사용됩니다. 예:

const searchBox = document.querySelector('#search-box');
const searchResults = document.querySelector('#search-results');

searchBox.addEventListener('input', () => {
  const value = searchBox.value.trim();

  if (value === '') {
    searchResults.innerHTML = '';
    return;
  }

  // 发送搜索请求
  fetch(`/api/search?q=${value}`)
    .then(response => response.json())
    .then(results => {
      // 展示搜索结果
      searchResults.innerHTML = '';
      for (let i = 0; i < results.length; i++) {
        const item = document.createElement(&#39;li&#39;);
        item.textContent = results[i].title;
        searchResults.appendChild(item);
      }
    })
    .catch(err => {
      console.error(err);
      searchResults.innerHTML = '搜索失败!';
    });
});
위 코드의 처음 두 줄에서 <label> code> 태그는 설명을 추가하기 위해 입력 상자에 사용되며, for 속성 값은 &lt의 <code>id 속성 값과 동일해야 합니다. ;입력> 태그. 이렇게 하면 사용자가 레이블을 클릭할 때 입력 상자에 초점이 맞춰집니다. 코드의 세 번째 줄에서 type 속성의 값은 "text"입니다. 이는 텍스트 입력 상자를 생성한다는 의미입니다.

<textarea> 태그는 여러 줄의 입력 상자를 만드는 데 사용됩니다. 예:

rrreee

<input> 태그와 비교하여, &lt ;textarea> 태그는 편집 가능한 영역이 더 크며 그 안에 여러 줄의 텍스트를 수용할 수 있습니다. 사용자에게 더 나은 운영 환경을 제공하기 위해 설명 태그를 추가할 수도 있습니다.

<form> 태그는 입력 항목 세트와 제출 버튼이 포함된 컨테이너입니다. 예: 🎜rrreee🎜위 코드에서 <form> 태그의 actionmethod 속성은 제출된 코드를 지정하는 데 사용됩니다. URL 및 방법. <button> 태그는 제출 버튼을 만드는 데 사용됩니다. 사용자가 버튼을 클릭하면 양식 데이터가 서버에 제출됩니다. 🎜
    🎜CSS🎜🎜🎜표준 HTML 태그를 사용하여 입력 상자를 만들 때의 장점은 CSS를 사용하여 입력 상자의 스타일을 제어하여 더 나은 사용자 경험을 얻을 수 있다는 것입니다. 예를 들어 다음 코드는 입력 상자를 상위 요소의 너비에 맞게 조정하고 아름다움을 높일 수 있습니다. 🎜rrreee🎜위 코드에서 box-sizing 속성은 크기를 제어하는 ​​데 사용됩니다. 입력 상자의 padding 속성은 패딩을 제어하는 ​​데 사용되며 border 속성은 테두리 스타일, border-radius를 제어하는 ​​데 사용됩니다. code> 속성은 테두리 둥근 각도를 제어하는 ​​데 사용되며 resize 속성은 입력 상자의 크기를 조정할 수 있는지 여부를 제어하는 ​​데 사용됩니다. 🎜🎜위 속성 외에도 CSS를 사용하여 다음과 같이 입력 상자의 애니메이션 효과를 얻을 수도 있습니다. 🎜rrreee🎜사용자가 입력 상자를 클릭하면 위 코드를 사용하면 입력 상자의 테두리가 변경됩니다. 색상을 지정하고 간단한 애니메이션 효과를 만듭니다. 이러한 스타일을 추가하면 사이트가 더욱 매력적으로 보이고 사용자 참여도가 높아집니다. 🎜
      🎜JavaScript🎜🎜🎜마지막으로 JavaScript를 사용하여 입력 상자 확인, 프롬프트 및 기타 대화형 효과를 구현할 수 있습니다. 예: 🎜rrreee🎜위 코드에서는 EventTarget.addEventListener() 메서드를 사용하여 입력 상자에 입력 이벤트 리스너를 추가합니다. 사용자가 입력 상자에 콘텐츠를 입력할 때마다 이 리스너가 트리거되며 입력이 비어 있는지, 길이가 요구 사항을 충족하는지 확인하는 등 몇 가지 확인 작업을 수행할 수 있습니다. 사용자 정의 프롬프트 정보를 설정하려면 setCustomValidity() 메서드를 사용하고, 프롬프트 상자를 팝업하려면 reportValidity() 메서드를 사용하세요. 🎜🎜확인 외에도 JavaScript의 입력 상자에 검색 및 연결과 같은 다른 기능을 구현할 수도 있습니다. 🎜rrreee🎜위 코드에서는 Fetch API를 사용하여 서버에 대한 검색 요청을 시작합니다. 그런 다음 검색 결과가 콜백 함수에서 처리되고 결과가 페이지에 렌더링됩니다. 🎜🎜Summary🎜🎜이 기사에서는 웹 프런트 엔드가 입력 상자를 구현하는 방법에 대해 논의했습니다. 우리는 HTML 태그를 사용하여 입력 상자를 만들고, CSS를 사용하여 입력 상자의 스타일을 제어하며, JavaScript를 사용하여 입력 상자의 유효성 검사, 프롬프트 및 기타 대화형 효과를 구현합니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 웹 프런트엔드에서 입력 상자를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.