当前位置: 首页 > 知识库问答 >
问题:

按Enter按钮并过滤数据[重复]

窦哲彦
2023-03-14

我正在实现过滤数据特性。以下代码是动态搜索功能。按Enter键后是否有办法实现显示结果?表示只有按Enter键用户才能看到结果

import React, { Fragment } from "react";
import { TextField, makeStyles } from "@material-ui/core";

const useStyle = makeStyles((theme) => ({
  inputRoot: {
    backgroundColor: "white",
    borderRadius: 10,
  },
  inputInput: {
    padding: theme.spacing(1, 1, 1, 2),
    transition: theme.transitions.create("width"),
    width: "100%",

    [theme.breakpoints.up("md")]: {
      width: 80,
    },
  },
}));
const SearchBox = ({ onSubmit }) => {
  const classes = useStyle();
  const [formData, setFormData] = React.useState({
    keyword: "",
  });
  const { keyword } = formData;
  const handleChange = (keyword) => (e) => {
    setFormData({ ...formData, [keyword]: e.target.value });
  };

  onSubmit(keyword);
  return (
    <Fragment>
      <TextField
        value={keyword}
        placeholder="Search…"
        onChange={handleChange("keyword")}
        className={classes.inputRoot}
        margin="normal"
        size="small"
        autoFocus={true}
       variant="outlined"
      />
    </Fragment>
  );
};

export default SearchBox;

共有1个答案

颛孙越
2023-03-14

您可以使用onKeyPress和event.key.它工作得很好。

handleKeyPress = (event) => {
  if(event.key === 'Enter'){
    onSubmit(keyword)
  }
}

<TextField onKeyPress={handleKeyPress} />

这里有更多的解决方案https://stack-overflow.com/questions/27827234/how-to-handle-the-onkeypress-event-in-reactjs

 类似资料:
  • 所以我有这些按钮(3叠6个,18个),我想实现的是当我按下其中一个按钮时: > 边框颜色 其他按钮将重置为其正常样式 但是我不想通过“isEnable”技巧禁用其他的(我只在这里找到了涉及isEnable的解决方案),我仍然希望它们被启用,我只是希望它们不要在按下时被我的自定义样式“突出显示”。 对于第一部分,也就是我在IBAction中所做的造型: 这一小部分只是一个按钮,但我想如果我有18个按

  • 问题内容: 好吧,我试图通过按Enter提交表单,但不显示提交按钮。我不希望尽可能地使用JavaScript,因为我希望所有功能都可以在所有浏览器上正常工作(我知道的唯一JS方式就是使用事件)。 现在,表单如下所示: 哪个效果很好。当用户按下Enter键时,提交按钮将起作用,并且该按钮在Firefox,IE,Safari,Opera和Chrome中不显示。但是,我仍然不喜欢该解决方案,因为很难知道

  • 问题内容: 我最近开始弄乱Java套接字和telnet … 我希望用户能够连接到服务器,只需键入一个字母并将其发送到服务器,而无需按Enter即可发送。我确定服务器没有办法设置它,但是telnet可能有一个参数或可以允许的参数吗? 也许如果我让用户输入文字或在运行telnet之前,这行得通吗?(仅知道UNIX!) 如果我可以通过telnet来执行此操作,那么就不必为此专门编写一个特殊的客户端… 问

  • 问题内容: 是否可以对结果进行分组,然后按组中的行数进行过滤? 像这样: 问题答案: 您想使用HAVING来过滤聚合函数。

  • 问题内容: 我有一系列元素。我还有一个IndexSet,它指定需要将数组的哪些索引提取到新数组中。例如: 我正在寻找使用swift 函数的方法,但是还没有答案。我怎样才能做到这一点? 问题答案: 是递增整数的集合,因此可以 将 每个索引 映射 到相应的数组元素: 假定所有索引对于给定数组均有效。如果不能保证,则可以过滤索引(如@dfri正确标记):

  • 问题内容: 我正在尝试通过键入日期范围来过滤包含时间戳的列表 例如: JSFIDDLE html javascript 我希望能够用值填充“发件人”字段:27-05-2010 并且“ To”字段的值为:29-07-2015 并仅获取该范围内的记录。 (示例中的第一条记录)。 谢谢分配阿维 问题答案: 您可以创建一个自定义过滤器来实现此目的。 JSFIDDLE html javascript 此外,

  • 问题内容: 这是我的模式窗口中的表格: 我没有关闭按钮,并且在按esc时已禁用了关闭窗口的功能。我希望能够在按“提交”或按Enter键时提交表单数据。 这是我正在使用的脚本: 在输入我的密码后按Enter键或单击“提交”按钮,将重新加载同一页面,并且ajax脚本不会运行。有人可以告诉我我的脚本是否与模态窗口的默认设置冲突? 问题答案: 监听表单事件-它由enter和click事件触发。 标记 JS