You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为输入框绑定submit事件?小费计算器取值失败求助

问题原因与解决方法

核心问题是:<input>元素没有submit事件,这个事件仅属于<form>标签,所以你给输入框绑定submit事件根本不会触发。

方案1:使用form标签包裹输入框(推荐,符合表单语义)

把输入框放在<form>标签内,监听form的submit事件,用户在输入框按回车时就会触发这个事件:

修改后的HTML:

<form class="form_bill">
    <h2>Bill</h2>
    <div class="input_icons">
      <i class="fa fa-usd icon"></i>
      <input type="number" class="form_input bill_input" placeholder="0"/>
    </div>
</form>

修改后的JS:

const billForm = document.querySelector('.form_bill');
const billInput = document.querySelector('.bill_input');

billForm.addEventListener('submit', function (e) {
    e.preventDefault(); // 阻止表单默认提交行为
    const billAmount = billInput.value;
    console.log(billAmount);
    // 后续处理逻辑写在这里
});

方案2:监听输入框的回车事件或实时输入事件

如果不想用form标签,可以监听输入框的keydown事件(判断是否按下回车),或者input事件实时获取输入值:

监听回车事件的JS:

const billInput = document.querySelector('.bill_input');

billInput.addEventListener('keydown', function (e) {
    if (e.key === 'Enter') {
        const billAmount = this.value;
        console.log(billAmount);
        // 后续处理逻辑
    }
});

实时获取输入值的JS(输入时立刻触发):

const billInput = document.querySelector('.bill_input');

billInput.addEventListener('input', function () {
    const billAmount = this.value;
    console.log(billAmount);
    // 后续实时处理逻辑
});

内容的提问来源于stack exchange,提问作者Adri Vasarhelyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 01:15:05