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

在purescript中创建后自动聚焦输入元素

慕容康安
2023-03-14

我正在使用purescript卤素构建一个类似电子表格的表格(类似于Handsontable)。如果双击某个单元格,则html输入元素将作为相应表格单元格的子元素呈现(并且不会为所有其他单元格呈现此类元素)。

这对卤素非常有效,除了我不知道如何自动将焦点设置为新创建的输入元素。

我尝试了自动聚焦属性,但这只适用于双击的第一个单元格。JavaScript的方法是在新元素上调用point()方法,但是我不知道在DOM以卤素更新后如何调用它。有什么想法吗?

共有1个答案

邢寒
2023-03-14

好的,下面是我如何使用Phil的初始值设定项提示:

编写一个JavaScript函数,实际聚焦元素。

exports.setFocusImpl = function(elemId) {
  return function() {
    document.getElementById(elemId).focus();
  };
};

谢谢。

foreign import data FOCUS :: !

foreign import setFocusImpl :: forall e. Fn1 String (Eff (focus :: FOCUS | e) Unit)

setFocus :: forall e. String -> Eff (focus :: FOCUS | e) Unit
setFocus = runFn1 setFocusImpl

然后使用初始化器中的setFocus函数。

H.input
[ A.id_ "inputField"
, A.Initializer do
    liftEff $ setFocus "inputField"
    pure DoNothing
] [ ]

请注意,我使用的是卤素的旧版本,其中签名仍然是旧版本(30e8b2c7中初始值设定项的定义)。

 类似资料:
  • 这在当前版本的AngularJS中存在吗?我注意到代码中有一个BOOLEAN_ATTR,它获得AngularJS支持的所有attr。我不想修改它,因为害怕改变版本和忘记更新。

  • 问题内容: 我在代码中有以下位置: 我也希望能够像这样使用它: 甚至更好,模仿ng样式的完成方式: 当前版本的AngularJS中是否存在?我在代码中注意到有一个BOOLEAN_ATTR,它获取了AngularJS支持的所有attr。我不想修改它,以免更改版本并忘记更新。 问题答案: 更新 :AngularJS现在有一个指令,该指令可以 对 焦点 上 的表达式进行求值,但是为了完整起见,我在这里提

  • 我已经阅读了讨论这个问题的其他问题,除了创建的第一个问题之外,它们都适用于我的布局。 目前,这是我的方法的顶部: ^这使得它至少键盘不会在启动时弹出,但仍然专注于。 这是我的的: 这是我提起我的活动时的样子: 问题是,对于某些手机,当像这样聚焦时,它们无法在其中写入。我希望它不对焦。 我所做的工作适用于接下来提出的布局,因为<code>编辑文本 请注意,它的布局是相同的。这是用户返回此屏幕后的屏幕

  • 问题内容: 单击复选框时,是否有一种更干净的方法将焦点委派给元素。这是我入侵的肮脏版本: 的HTML 的JavaScript JSFiddle:http : //jsfiddle.net/U4jvE/8/ 问题答案: 这个怎么样 ?矮人 @asgoth和@Mark Rajcok是正确的。我们应该使用指令。我只是懒惰。 这是指令版本。plunker我觉得一个好的理由将其作为指令是可以重用这件事。 因

  • 第一个帖子!和一个java的noob*随便! 我知道有很多关于这个话题的帖子,我已经读过了…我就是解决不了。 我有一个非常简单的HTML表单,有静态输入和动态创建的输入。 HTML自动完成 HTML表单 null AddInput.js 所以问题很简单…给定这些代码,我如何在每个新生成的输入中实现自动完成。 事先多谢。

  • 问题内容: 我正在使用Angular JS-ui.bootstrap.typeahead: 我想单击一个按钮并聚焦于一个输入字段,并自动显示预先输入建议下拉列表。我有一条指令,当单击按钮时,该指令会自动聚焦输入字段。如何自动显示下拉菜单,以便用户可以使用向下箭头或单击来快速选择用户? 我用可编辑的ui-bootstrap JS文件创建了一个Plunker: http://plnkr.co/edit