当前位置:首页 > JavaScript

JS实现inpubox

2026-02-02 12:02:55JavaScript

实现 InputBox 的基本结构

使用 HTML 和 CSS 创建一个基础的输入框结构,确保样式简洁且易于扩展。

<div class="input-box">
  <input type="text" placeholder="Enter something..." class="input-field" />
  <button class="input-button">Submit</button>
</div>
.input-box {
  display: flex;
  border: 1px solid #ccc;
  border-radius: 4px;
  overflow: hidden;
  width: 300px;
}

.input-field {
  flex: 1;
  padding: 10px;
  border: none;
  outline: none;
}

.input-button {
  padding: 10px;
  background-color: #007bff;
  color: white;
  border: none;
  cursor: pointer;
}

.input-button:hover {
  background-color: #0056b3;
}

添加事件监听与交互逻辑

通过 JavaScript 为输入框和按钮添加交互功能,例如提交输入内容或实时验证。

JS实现inpubox

const inputField = document.querySelector('.input-field');
const inputButton = document.querySelector('.input-button');

inputButton.addEventListener('click', () => {
  const value = inputField.value.trim();
  if (value) {
    alert(`Submitted: ${value}`);
    inputField.value = '';
  } else {
    alert('Input cannot be empty!');
  }
});

inputField.addEventListener('keypress', (e) => {
  if (e.key === 'Enter') {
    inputButton.click();
  }
});

扩展功能:实时输入验证

为输入框添加实时验证逻辑,例如限制输入长度或检查特定格式。

JS实现inpubox

inputField.addEventListener('input', () => {
  const value = inputField.value;
  if (value.length > 20) {
    inputField.style.borderColor = 'red';
  } else {
    inputField.style.borderColor = '#ccc';
  }
});

动态生成 InputBox

通过 JavaScript 动态生成输入框组件,适用于需要动态添加输入框的场景。

function createInputBox(placeholder, buttonText) {
  const container = document.createElement('div');
  container.className = 'input-box';

  const input = document.createElement('input');
  input.type = 'text';
  input.placeholder = placeholder;
  input.className = 'input-field';

  const button = document.createElement('button');
  button.className = 'input-button';
  button.textContent = buttonText;

  button.addEventListener('click', () => {
    alert(`Submitted: ${input.value}`);
  });

  container.appendChild(input);
  container.appendChild(button);
  return container;
}

document.body.appendChild(createInputBox('Enter name...', 'Save'));

封装为可复用组件

将输入框逻辑封装为类或模块,便于在项目中复用。

class InputBox {
  constructor(options) {
    this.container = document.createElement('div');
    this.container.className = 'input-box';

    this.input = document.createElement('input');
    this.input.type = 'text';
    this.input.placeholder = options.placeholder || 'Enter...';
    this.input.className = 'input-field';

    this.button = document.createElement('button');
    this.button.className = 'input-button';
    this.button.textContent = options.buttonText || 'Submit';

    this.button.addEventListener('click', () => {
      if (options.onSubmit) {
        options.onSubmit(this.input.value);
      }
    });

    this.container.appendChild(this.input);
    this.container.appendChild(this.button);
  }

  appendTo(element) {
    element.appendChild(this.container);
  }
}

const myInputBox = new InputBox({
  placeholder: 'Type here...',
  buttonText: 'Send',
  onSubmit: (value) => alert(value)
});
myInputBox.appendTo(document.body);

标签: JSinpubox
分享给朋友:

相关文章

JS如何调用react组件

JS如何调用react组件

调用React组件的常见方法 在JavaScript中调用React组件通常涉及以下几种场景和方式: 直接渲染组件 通过ReactDOM.render()方法将组件渲染到DOM节点: impo…

JS如何访问react内部的数据

JS如何访问react内部的数据

访问 React 组件内部数据的方法 在 React 中,组件内部的数据通常通过 state 或 props 管理。以下是几种常见的访问方式: 通过 state 访问数据 React 组件的内部状态…

JS实现文本的删除

JS实现文本的删除

使用 substring() 方法 通过指定起始和结束索引截取字符串的一部分,间接实现删除效果。 let str = "Hello World"; let newStr = str.subst…

JS能实现跨平台吗

JS能实现跨平台吗

JavaScript 的跨平台能力 JavaScript 是一种高度灵活的脚本语言,通过不同运行时环境和工具链可以实现跨平台开发。以下是其跨平台能力的核心实现方式: 浏览器环境 JavaScri…

用JS实现冰墩墩

用JS实现冰墩墩

以下是用JavaScript绘制冰墩墩的几种实现方法,结合Canvas绘图和SVG路径数据: 使用Canvas绘制基础轮廓 const canvas = document.createElemen…

JS节流和防抖的实现

JS节流和防抖的实现

节流(Throttle)的实现 节流是指在一定时间间隔内,函数最多执行一次。常用于限制高频事件的触发频率,如滚动事件、窗口调整等。 function throttle(func, delay) {…