仅在第一次单击时选择所有文本

盖伊

我正在使用Dojo 1.6,并且只想在第一次单击时选择文本框的所有文本。我知道我可以dojo.byId("id").select();用来选择整个文本,但是问题是您不能再对文本进行子选择了。我提供了一个小的代码示例来说明问题。

require(["dojo/parser", "dijit/form/TextBox"]);

require(["dojo/query", "dojo/on",  "dojo/domReady!"], function(query, on) {
    query("#firstname").on("click", function(evt) {
        // this will not work because I want to select 1 or more characters
        if (!dojo.byId("firstname").select())
           dojo.byId("firstname").select();
    });
});

和小提琴:http : //jsfiddle.net/3CLz9/

所以主要的问题是我无法确定是否选择了一个或多个字符。

g00glen00b

您可以使用dojo/on模块的once()功能。但是我不认为这就是您想要的。我想您想在每次输入字段获得焦点时都选择文本如果你想要这个,你应该使用的onFocus情况下,(所以更换"click""focus")。

现在唯一的问题是,在选择文本之后,默认事件会将光标移动到所选位置并取消选择文本(您会看到它闪烁)。为了解决这个问题,您还应该绑定一个mouseup事件处理程序,事件处理程序在获得焦点时会取消。例如:

query("#firstname").on("focus", function(evt) {
    this.select();
    on.once(this, "mouseup", function(evt) {
       evt.preventDefault(); 
    });
});

我还更新了你的小提琴


我只是注意到您实际上正在使用dijit/form/TextBox小部件(在您的JSFiddle上不起作用,所以我没有注意到它),但是您可以使用该selectOnClick属性轻松地做到这一点将其添加到您的文件中data-dojo-props,它将起作用。

例如:

<input type="text" name="firstname" value="testing testing"
    data-dojo-type="dijit/form/TextBox"
    data-dojo-props="trim:true, propercase:true, selectOnClick: true" id="firstname" />

这是您的小提琴(带有可用的文本框小部件)。如果要对1.7以下的Dojo版本执行相同的操作,则可以按照本小提琴中所述进行操作

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击函数被调用两次,但仅在第一次单击时被调用?

来自分类Dev

第一次单击日期文本字段时如何生成日期选择器用户界面?

来自分类Dev

jQuery单击事件仅在第一次工作

来自分类Dev

弹出窗口仅在第一次单击时显示div

来自分类Dev

为什么“发出”仅在我第一次单击按钮时不显示名称?

来自分类Dev

如何仅在第一次单击时设置slideToggle打开div?

来自分类Dev

锚链接偏移仅在第一次单击时不起作用

来自分类Dev

OnClick 侦听器仅在第一次单击时更新回收器视图

来自分类Dev

第一次单击时如何删除文本框中的文本?

来自分类Dev

angularjs观看单选按钮以使更改仅在第一次选择时起作用

来自分类Dev

for循环仅在第一次迭代时执行

来自分类Dev

仅在第一次或刷新时加载Javascript

来自分类Dev

AngularJs选择项在第一次选择时未设置正确的文本

来自分类Dev

选择第一次单击浏览器操作时将打开的弹出窗口

来自分类Dev

第一次单击时未显示日期选择器

来自分类Dev

getElementById 仅在第一次有效

来自分类Dev

UISearchController searchBar在第一次单击时消失

来自分类Dev

函数在第一次单击时未执行

来自分类Dev

第一次单击时,DataGrid ComboBox没有选定的项目

来自分类Dev

JavaFX按钮在第一次单击时没有响应

来自分类Dev

JavaFX按钮在第一次单击时没有响应

来自分类Dev

在第一次分页时选择状态

来自分类Dev

在第一次分页时选择状态

来自分类Dev

第一次关闭所有子菜单

来自分类Dev

有选择地防止调试器在第一次机会异常时停止

来自分类Dev

当我第一次单击“删除”按钮时,所有注释都消失了,但是,当我刷新页面时,它可以正常工作

来自分类Dev

Angular.js仅在第一次选择输入无线电时触发ng-change

来自分类Dev

Angular.js仅在第一次选择输入无线电时触发ng-change

来自分类Dev

如何仅在第一次出现结束字符串之前替换所有内容?

Related 相关文章

  1. 1

    单击函数被调用两次,但仅在第一次单击时被调用?

  2. 2

    第一次单击日期文本字段时如何生成日期选择器用户界面?

  3. 3

    jQuery单击事件仅在第一次工作

  4. 4

    弹出窗口仅在第一次单击时显示div

  5. 5

    为什么“发出”仅在我第一次单击按钮时不显示名称?

  6. 6

    如何仅在第一次单击时设置slideToggle打开div?

  7. 7

    锚链接偏移仅在第一次单击时不起作用

  8. 8

    OnClick 侦听器仅在第一次单击时更新回收器视图

  9. 9

    第一次单击时如何删除文本框中的文本?

  10. 10

    angularjs观看单选按钮以使更改仅在第一次选择时起作用

  11. 11

    for循环仅在第一次迭代时执行

  12. 12

    仅在第一次或刷新时加载Javascript

  13. 13

    AngularJs选择项在第一次选择时未设置正确的文本

  14. 14

    选择第一次单击浏览器操作时将打开的弹出窗口

  15. 15

    第一次单击时未显示日期选择器

  16. 16

    getElementById 仅在第一次有效

  17. 17

    UISearchController searchBar在第一次单击时消失

  18. 18

    函数在第一次单击时未执行

  19. 19

    第一次单击时,DataGrid ComboBox没有选定的项目

  20. 20

    JavaFX按钮在第一次单击时没有响应

  21. 21

    JavaFX按钮在第一次单击时没有响应

  22. 22

    在第一次分页时选择状态

  23. 23

    在第一次分页时选择状态

  24. 24

    第一次关闭所有子菜单

  25. 25

    有选择地防止调试器在第一次机会异常时停止

  26. 26

    当我第一次单击“删除”按钮时,所有注释都消失了,但是,当我刷新页面时,它可以正常工作

  27. 27

    Angular.js仅在第一次选择输入无线电时触发ng-change

  28. 28

    Angular.js仅在第一次选择输入无线电时触发ng-change

  29. 29

    如何仅在第一次出现结束字符串之前替换所有内容?

热门标签

归档