首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在reactJS中文本框的div外部单击时,将编辑的文本框值更改为原始传递的值

在ReactJS中,要实现在文本框的div外部单击时将编辑的文本框值更改为原始传递的值,可以通过以下步骤实现:

  1. 首先,在React组件的state中定义一个变量来保存文本框的值和原始传递的值。例如,可以定义两个变量originalValueeditedValue,并将原始传递的值赋给originalValue
  2. 在文本框的div外部单击事件的处理函数中,将editedValue的值重置为originalValue
  3. 在文本框的onChange事件处理函数中,更新editedValue的值为用户输入的新值。
  4. 在渲染组件时,将editedValue绑定到文本框的value属性上,以便显示用户编辑的值。

下面是一个示例代码:

代码语言:txt
复制
import React, { useState } from 'react';

const TextBox = ({ initialValue }) => {
  const [originalValue, setOriginalValue] = useState(initialValue);
  const [editedValue, setEditedValue] = useState(initialValue);

  const handleOutsideClick = () => {
    setEditedValue(originalValue);
  };

  const handleChange = (event) => {
    setEditedValue(event.target.value);
  };

  return (
    <div onClick={handleOutsideClick}>
      <input type="text" value={editedValue} onChange={handleChange} />
    </div>
  );
};

export default TextBox;

在上述示例中,TextBox组件接收一个名为initialValue的prop,用于传递原始的文本框值。组件内部使用useState钩子来定义originalValueeditedValue的状态,并通过setOriginalValuesetEditedValue函数来更新它们的值。

handleOutsideClick函数中,当用户在文本框的div外部单击时,将editedValue的值重置为originalValue,实现将编辑的文本框值更改为原始传递的值。

handleChange函数中,当用户在文本框中输入新值时,更新editedValue的值为用户输入的新值。

最后,在渲染组件时,将editedValue绑定到文本框的value属性上,以便显示用户编辑的值。

这样,当用户在文本框的div外部单击时,文本框的值将被更改为原始传递的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

React.Component损害了复用性?|TW洞见

第二行是一个文本框和一个“Add”按钮,可以把文本框的内容添加为新标签。每次点击“Add”按钮时,标签编辑器应该检查标签是否已经添加过,以免重复添加标签。...这些 div> 本身并不是动态创建的,但可以作为容器,放置其他动态创建的元素。 代码中的函数来会把网页内容动态更新到这些 div> 中。所以,如果要在同一个页面显示两个标签编辑器,id 就会冲突。...使用ReactJS的前端项目充满了各种 xxxHandler用来在组件中传递信息。 我参与的某海外客户项目,平均每个组件大约需要传入五个回调函数。...Vars 是支持数据绑定的列表容器,每当容器中的数据发生改变,UI就会自动改变。所以,在x按钮中的onclick事件中删除tags中的数据时,页面上的标签就会自动随之消失。...同样,在Add按钮的onclick中向tags中添加数据时,页面上也会自动产生对应的标签。 Binding.scala不但实现标签编辑器比ReactJS简单,而且用起来也比ReactJS简单: ?

5K90

Excel编程周末速成班第21课:一个用户窗体示例

1.将文本框控件添加到窗体,然后将其Name属性更改为txtFirstName。 2.在该文本框旁边添加一个标签控件,并将其Caption属性更改为“名字:”。...为了简洁起见,本示例中的代码仅将某些州加载到控件中;当然,真正的应用程序需要在复合框中包含所有州。 要添加代码: 1.单击工程窗口中的“查看代码”按钮以打开用户窗体的代码编辑窗口。...如你在第20课中所学习的,此事件接收一个参数,该参数标识所按下的键。如果该键可以接受,则将其传递;否则取消。 在VBA联机帮助中的KeyCode值列表中,你可以看到键0到9的代码值为48到57。...当然,在单击“下一步”按钮时,这是必需的,在单击“取消”或“完成”按钮时,这也是必需的。即使使用Hide方法隐藏了该窗体,它在下次显示时仍将所有数据保留在其控件中。因此,需要清除控件。...编辑器中打开用户窗体时按F5来测试工程,还可以编写一个使用Show方法显示窗体的宏。

6.1K10
  • MFC入门教程(深入浅出MFC)

    如果我们在程序运行界面中输入被加数,则通过CAddition的DoDataExchange()函数可以将输入的值保存到m_editSummand变量中,反之如果程序运行中修改了变量m_editSummand...的值,则通过CAddition的DoDataExchange()函数也可以将新的变量值显示到被加数的编辑框中。...最后调用UpdateData(FALSE)根据被加数、加数、和的值更新三个编辑框的显示值,就得到了上图中的结果。 到此,一个具有简单的加法运算功能的加法计算器应用程序就基本完成了。...例如,此例中我们可以依次单击被加数编辑框、“被加数”静态文本框、加数编辑框、“加数”静态文本框、和编辑框、“和”静态文本框、“计算”按钮和“退出”按钮。...另外,我们可以将属性页对话框的标题设为“使用说明”,在构造属性表对象时将此字符串作为构造函数的参数传入。

    4.5K31

    26个你需要学习的Firefox配置技巧,改进体验和加快浏览器响应速度

    在复选框中,单击OK,然后选择“false”,再单击OK。 此首选项现在将存在于您的列表中,您可以在任何时候通过右键单击它并单击“Reset”来禁用它。 6....可以更改的值: false——将光标放在插入点 True -单击时选择所有文本 18....默认情况下,Firefox从支持的离线web应用程序中缓存500MB的数据。您可以将该值更改为您喜欢的任何值。...在您喜欢的编辑器中查看源代码 ​这对于经常使用“查看源代码”函数的开发人员非常有用。这个调整允许您在外部编辑器中查看给定网站的源代码。 ​...增加“保存链接为”超时值 ​当您右击并选择“Save Link As…”时,浏览器将从URL请求内容配置头以确定文件名。如果URL在一秒钟内没有传递报头,Firefox将发出一个超时值。

    5.5K20

    WEB入门之十四 jQuery事件

    把页面加载完毕时需要调用的两个函数放到第三个函数test中调用,然后给onload事件绑定test函数即可 虽然示例5.3把问题解决了,但是在某些情况下仍然不能满足需求,例如,如果脚本代码分布在多个外部...属性 说明 type 获取事件类型 target 获取触发事件的元素 result 获取上一个事件处理函数返回的值 which 获取在鼠标单击事件中获取鼠标的按键,值1表示鼠标左键;值2表示鼠标中键;值...3表示鼠标右键 pageX/Y 获取事件发生时相对于页面的坐标 keyCode 获取在键盘事件中键盘对应的键值 screenX/Y 获取事件发生时相对于屏幕的坐标 data 事件发生时传递的参数的信息都保持在该属性中...,多个事件用空格隔开 data:该参数可选,表示事件发生时通过event对象传递的值 fn:表示事件发生时的处理函数 下面我们通过一个示例来演示on函数的用法,该示例让用户输入自己的身份证号,然后单击按钮时分析出用户的出生日期...我们使用on函数给按钮绑定了单击事件,并在该事件中通过传参的形式把文本框的值传给处理函数。

    8110

    Web 性能优化: 使用 React.memo() 提高 React 组件性能

    在浏览器中运行我们的程序,并多次单击 Click Me 按钮,会看到在控制打印很多次信息: 在我们的控制台中有 “componentWillUpdate” 和 “componentWillUpdate”...DevTools 选项卡中操作 TestC 组件的状态,单击 React 选项,选择右侧的 TestC,我们将看到带有值的计数状态: 在这里,我们可以改变数值,点击count文本,输入 2,然后回车:...如果我们更改数字并按回车,组件的 props 将更改为我们在文本框中输入的值,接着继续更为 45: 移动到 Console 选项 我们看到 TestC 组件重新渲染,因为上个值为 5,当前值为 45.现在...,返回 React 选项并将值更改为 45,然后移至 Console: 看到组件重新渲染,且上个值与当前值是一样的。...现在,如果我们在右边编辑 count 值为到 89,会看到我们的应用程序重新渲染: 如果我们在将值改为与上个一样的值: 89: 不会有重新渲染!!

    5.6K41

    WEB入门之十四 jQuery事件

    把页面加载完毕时需要调用的两个函数放到第三个函数test中调用,然后给onload事件绑定test函数即可 虽然示例5.3把问题解决了,但是在某些情况下仍然不能满足需求,例如,如果脚本代码分布在多个外部...属性​ ​说明​ type 获取事件类型 target 获取触发事件的元素 result 获取上一个事件处理函数返回的值 which 获取在鼠标单击事件中获取鼠标的按键,值1表示鼠标左键;值2表示鼠标中键...;值3表示鼠标右键 pageX/Y 获取事件发生时相对于页面的坐标 keyCode 获取在键盘事件中键盘对应的键值 screenX/Y 获取事件发生时相对于屏幕的坐标 data 事件发生时传递的参数的信息都保持在该属性中...把bind换成live后,表格中的任何一行在单击时都可以改变背景色,包括动态创建的行。...我们使用on函数给按钮绑定了单击事件,并在该事件中通过传参的形式把文本框的值传给处理函数。

    12910

    Excel实战技巧63: 制作具有数据导航功能的用户窗体

    这个用户窗体需要6个事件:Initialize(当用户窗体打开时)、QueryClose(当用户窗体关闭时),以及每个命令按钮的单击事件。...需要使用事件代码将记录集的当前记录显示在文本框中、以及阻止用户错误操作,例如当处于第一条记录时单击命令按钮cmdPrev(单击任一按钮时,需要改变文本框来响应事件。因此,Initialize事件和四个按钮中任一按钮的单击事件都将调用上面的程序。在调用上面的程序之前,这些事件将首先设置当前记录。...其中一种方法是在Excel中创建外部数据表(数据>获取外部数据),然后读取Connection和CommandText属性。接着,做一些修改,例如从连接字符串中移除ODBC以及使用变量代替数据库信息。...也可以像上面程序中一样,将代码分成几个字符串。 当关闭用户窗体时,将触发QueryClose事件。如果用户窗体不打开,就不需要记录集,因此在该事件中要将其释放并清空内存。

    3.1K20

    eeglab教程系列(2)-加载、显示数据

    square" 事件对应的是显显示器中绿色正方形的外观,"rt"对应于受试者的反映时间。...为了减少下载时间,这个“伪连续”脑电数据集实际上是通过连接80个独立的3秒数据段来构建的。因此在某些数据通道中可能会存在一些突然跳变。)...绘图窗口右侧是垂直刻度值(及其单位,微伏),它指示垂直刻度条的"幅度"。在这种情况下,该值为80(微伏)。右下角的编辑框中也显示了相同的值,如下所示,我们可以在其中进行更改。...2.5:电压刻度调整 通过重复单击"-"按钮或通过键盘编辑文本值,将"刻度"编辑文本框的值更改为大约50,然后按Enter键更新滚动窗口。...Settings > Time range to display,出现如下界面: 点击OK,数据显示如下: 2.7 通道数编辑 在eegplot()界面中,Settings > Number of

    1.2K30

    eeglab教程系列(1)-加载、显示数据

    1.准备工作: 1.1 安装eeglab: 在matlab中安装eeglab,请看安装教程:eeglab在MATLAB中安装教程 1.2 测试数据 由于公众号上不好上传文件,所以请到QQ群中下载 测试数据文件...因此在某些数据通道中可能会存在一些突然跳变。) 选择Plot > Channel data (scroll). ? 绘图窗口右侧是垂直刻度值(及其单位,微伏),它指示垂直刻度条的"幅度"。...在这种情况下,该值为80(微伏)。右下角的编辑框中也显示了相同的值,如下所示,我们可以在其中进行更改。...2.5:电压刻度调整 通过重复单击"-"按钮或通过键盘编辑文本值,将"刻度"编辑文本框的值更改为大约50,然后按Enter键更新滚动窗口。 ?...2.7 通道数编辑 在eegplot()界面中,Settings > Number of channels to display,出现如下界面: ? 点击OK,数据显示如下: ?

    1.1K21

    Web APIs第二天

    事件是在编程时系统内发生的动作或者发生的事情, 比如用户在网页上单击一个按钮 事件是在编程时系统内发生的动作或者发生的事情, 比如点击按钮 click 2. 什么是事件监听?...全选文本框案例 ①全选复选框点击,可以得到当前按钮的 checked ②把下面所有的小复选框状态checked,改为和全选复选框一致 ③如果当前处于选中状态,则把文字改为取消, 否则反之 //需求:用户点击全选...三个ck按钮在伪数组里 用for遍历 依次给值 for (let num3 = 0; num3 < num2.length; num3++) { // num2[num3].checked...高阶函数 高阶函数可以被简单理解为函数的高级应用,JavaScript 中函数可以被当成【值】来对待,基于这个特性实现函数的高 级应用 【值】就是 JavaScript 中的数据,如数值、字符串、布尔、...回调函数 如果将函数 A 做为参数传递给函数 B 时,我们称函数 A 为回调函数 简单理解: 当一个函数当做参数来传递给另外一个函数的时候,这个函数就是回调函数 点击

    1.1K60

    eeglab中文教程系列(1)-加载、显示数据

    square" 事件对应的是显显示器中绿色正方形的外观,"rt"对应于受试者的反映时间。...因此在某些数据通道中可能会存在一些突然跳变。) 选择Plot > Channel data (scroll). [图7] 绘图窗口右侧是垂直刻度值(及其单位,微伏),它指示垂直刻度条的"幅度"。...在这种情况下,该值为80(微伏)。右下角的编辑框中也显示了相同的值,如下所示,我们可以在其中进行更改。...电压刻度调整 通过重复单击"-"按钮或通过键盘编辑文本值,将"刻度"编辑文本框的值更改为大约50,然后按Enter键更新滚动窗口: [图8] 调整滚动时间窗口的宽度 在上述图片中即eegplot()。...Settings > Time range to display,出现如下界面: [图9] 点击OK,数据显示如下: [图10] 通道数编辑 在eegplot()界面中,Settings > Number

    1.8K00

    架设邮件服务器-windows 2003 POP3服务,SMTP服务收发邮件「建议收藏」

    默认选择的是“匿名访问”,只有在SMTP服务器是专用服务器(只与内部或者自己系统内的其他SMTP服务器通信)并且不与外部Internet的邮件系统通讯时,才选择其他的选项。...在此可以将NDR副本发送到一个特定的SMTP信箱。如果需要启用此功能,请在“将未传递报告的副本发送到”文本框中键入接收报告副本电子邮件地址。...(5)延迟通知,若要允许本地和远程传递具有网络延迟,可以设置一个延迟时间段,在此时间段后才会发送传递通知。对于“出站”和“本地”传递,最小值为1分钟,默认值为12小时,最大值为9999天。...不要修改此值。 5 高级设置 在图6-19中单击“高级”按钮,出现“高级传递”对话框,如图6-22所示。在这里可设置SMTP虚拟服务器上的路由选项。...在类似图6-51中,在右侧窗格中用鼠标右键单击,从弹出的快捷菜单中选择“新建邮件交换器(MX)”,在弹出的“邮件交换器”对话框中,在“主机或子域”文本框中,不要键入任何值,在“邮件服务器的完全合格的域名

    6.1K21

    dropDownList属性

    不过,和DropDownList控件相比,还缺少以下内容 1、当点击菜单中的某一项,菜单的文字自动显示在文本框中 2、当点击菜单中的某一项,提供一个函数来获得相关的数据(可以是菜单的文字,也可以是相关的文本...) 3、文本框不能编辑,只能通过点击菜单来更改内容 4、能设置下拉菜单的最大高度,使得菜单项过多时,能出现滚动条。...先规划好这个JQuery组件的属性: InputName:文本框的name和id属性,默认值是“Q”; ButtonText:右侧按钮的文字,默认值是“示例”; ReadOnly:文本框的可编辑性属性。...默认值是-1,不设置最高高度,菜单的高度由菜单的条目决定; onSelect:设置选择菜单条目时调用的函数。默认值是$.noop(),JQuery中的空函数; Items:菜单条目的集合。...,使得文本框不能编辑。

    2.2K100

    4.vue 的双向绑定的原理是什么?_监听门事件

    双向绑定在不同表单元素中的原理 ---- 双向绑定 前面的指令和 { { }} 都是单向绑定,当用户主动在文本框中输入内容后,如果使用 :value=”str” 方式绑定,用户输入的内容是无法自动回到程序中的变量中保存的...双向绑定原理(高频笔试面试) 双向绑定就是在单向绑定的基础上,自动为元素添加 onchange 或 oninput 事件处理函数,并能在事件处理函数中,自动将新值更新到 data 中的变量中。...双向绑定在不同表单元素中的原理 (1)文本框 和文本域 首次加载时,v-model 将程序中变量的值更新到页面上的文本框中显示...,当用户主动在文本框中输入内容时,v-model 自动将用户输入的内容更新回程序中变量中保存。...否则如果 radio 固定 value 值与变量值不相等,则 radio 不选中;当用户切换选中项时,v-mode 只会自动将选中的一个 radio 身上固定 value 值更新到程序中变量里保存,如果未选中的

    1.4K70

    vue todolist案例_nodejs mvc

    (items )没有数据时, #main 和#footer 标识的标签应该被隐藏 4.2 在最上面的文本框中添加新的任务。...按Enter键添加任务列表中,并清空文本框。 当加载页面后文本框自动获得焦点,在 input 上使用 autofocus 属性可获得。 4.3 左下角要显示未完成的任务数量。...单击Clear completed按钮后,确保复选框清除了选中状态 当列表中没有已完成的任务时,应该隐藏Clear completed按钮。...4.6 双击(某个任务项)进入编辑状态(在上通过.editing进行切换状态)。 进入编辑状态后输入框显示原内容,并获取编辑焦点。...4.8 将所有任务项数据持久化到localStorage中,它主要是用于本地存储数据。 完整代码展示 index.html: <!

    1.3K10

    Reactjs+BootStrap开发自制编程语言Monkey的编译器:词法解析1

    当一个组件被放入到””,这两个尖括号中时,reactjs解析到后就会自动把尖括号里面的组件对象得到,然后调用它的reander函数。...例如上面代码中,夹在尖括号中的组件叫bootstrap.FormControl, 那么reactjs在解析到上面代码时,会自动调用bootstrap.FormControl.render(),于是一个输入文本框就会显示到页面上了...上面的代码经过reactjs解析后会在页面上绘制出底部那个红色的按钮,其中bsStyle=”danger” 称之为组件的属性,是用来从将信息从外部传入组件内部的,后面我们会详细讲解这个特性。...上面代码完成后,加载页面,在文本框中输入几句代码,点击按钮进行词法解析,结果如下: ?..., 第二行的数字6,它对应的Token中,分类值为4,对应到代码中是NUMBER,并且它所在的行号是1,从这两处结果看,词法解析的结果基本正确。

    2.6K10

    开始学习React js

    1、ReactJS的背景和原理 在Web开发中,我们总需要将变化的数据实时反应到UI上,这时就需要对DOM进行操作。...下面我们来编写一个小例子,一个文本框和一个button,通过点击button可以改变文本框的编辑状态,禁止编辑和允许编辑。通过这个例子来理解ReactJS的状态机制。先看代码: ?...这里我们可以通过this.state.属性名来访问属性值,这里我们将enable这个值跟input的disabled绑定,当要修改这个属性值时,要使用setState方法。...2、可以通过属性,将值传递到组件内部,同理也可以通过属性将内部的结果传递到父级组件(留给大家研究);要对某些值的变化做DOM操作的,要把这些值放到state中。...3、为组件添加外部css样式时,类名应该写成className而不是class;添加内部样式时,应该是style={{opacity: this.state.opacity}}而不是style="opacity

    7.3K60
    领券