首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(键盘)当尝试连接event.target.value时没有工作

问(键盘)当尝试连接event.target.value时没有工作
EN

Stack Overflow用户
提问于 2021-08-31 12:00:31
回答 1查看 90关注 0票数 0

我想拼接数字,如果是值> 12,但没有工作。

代码语言:javascript
复制
   public preventNum(e){ 
        let selectedNumber = e.target.value; 
        if (selectedNumber > 12) { 
            selectedNumber = selectedNumber.slice(0, 1) 
          }
          else {
           console.log('else')
          } 
    }


    <timepicker  
        [(ngModel)]="selectedTime"  
        (keyup)="preventNum($event)" >

为什么不工作?当我console.log时,selectedNumber数被拼接,但值在输入中停留。

如果输入15,我想拼接成一个数字.

我也尝试连接selectedTime,但那是日期类型,不能在日期上应用拼接。

selectedNumber是拼接的,但在输入停留。

EN

回答 1

Stack Overflow用户

发布于 2022-02-18 04:04:22

您正在尝试混合数据类型,并得到不好的结果。让我们一次拿一片:

  1. event.target.value

虽然您的代码示例不包括此部分,但我确信您的事件是来自HTML的更改或输入事件。对于大多数HTML输入类型,包括文本输入,值将为String类型。

这意味着这段代码会给您带来糟糕的结果:

代码语言:javascript
复制
selectedNumber > 12

为什么?因为像>和<这样的不等式运算符通常只能在两个操作数都是数字(或数字,比如日期--它不包括日期的字符串表示)时使用。只有在编写需要比较字符串的自定义排序函数时才应该忽略此规则。您没有在此示例中进行排序,因此适用该规则。

要解决这个问题,您应该将原始值从字符串转换为实际数字,如下所示:

代码语言:javascript
复制
let selectedNumber = parseInt(event.target.value)

(如果您想使用小数,请使用parseFloat。)

  1. 不使用slice来实现

作为一个实际问题,遵循我的第一个建议将迫使您停止使用slice,因为数字没有切片方法。

正确的解决办法取决于你想要完成什么,我不知道你的目标是什么。

对您的代码示例的慈善解释是:“如果数字大于12,则只保留最重要的数字。”

您的代码示例的其余部分向我表明,您正在尝试做与12小时时钟相关的数学,这使我认为我刚才描述的逻辑不是实现目标的唯一甚至最好的方法。

我有一种预感,你想要做的是弄清楚用户给你的时间是在中午之前还是之后。如果这是正确的,那么这样的代码和更好的数据设计就更清晰了:

代码语言:javascript
复制
let isMorning = selectedNumber < 12
let isAfternoon = selectedNumber >= 12

如果我误解了你的目标,你可以更详细地解释你的目标。

还有一个一般性的注意事项:仔细选择你的数据类型。Javascript提供了各种基本数据类型:字符串、数字、日期和布尔值。您必须就如何表示应用程序所需的数据作出决定。如果选择最适合所需数据的本机数据类型,则总会得到最好的结果。

为了说明我的观点,下面是一些非常糟糕的想法的例子,千万不要做这些事情:

choice)

  • store

  • 将一个是/否值存储为字符串,其中1 = yes和0 = no (布尔值是正确的--一个数量作为字符串,例如let sheepCount = "5" (Number是正确的choice)
  • store --一个对象ID作为一个数字),即使它是所有的数字,比如rowId = 5 (在Javascript中,ID应该总是以字符串的形式存储)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68998313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档