首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-1 \f25 make -1\f6在<input type='number‘/> -1\f6中显示为-1\f25 'unlimited’-1\f6

-1 \f25 make -1\f6在<input type='number‘/> -1\f6中显示为-1\f25 'unlimited’-1\f6
EN

Stack Overflow用户
提问于 2019-01-10 00:05:18
回答 2查看 588关注 0票数 0

我可以根据输入值更改HTML< input /> =‘number’的内容吗?

当输入为-1时,我希望它显示为'unlimited‘。

运行下面的代码片段。

要了解更多上下文,请了解我使用的是Angular 7和Angular材质。

代码语言:javascript
复制
<p>When the below input value equals -1,<br/> I would like the input to display the text 'unlimited'. <br /> Is this possible? </p>

<input type="number" min="-1" />

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-10 01:53:01

对于类型为number的输入,您不能不采取欺骗手段。

一种方法是求助于type="text"并模拟type="number"已经为您做的事情(只允许数字输入、范围、特定于用户代理的UI)。通常情况下会变得相当混乱。

另一种方法是“隐藏”值为-1的数字输入,并通过其他方式显示文本"unlimited“。

我在这里通过在数字输入下面放置另一个只读输入字段来实现这一点。其他元素也可以工作,但另一个输入域将为您提供一致的外观。

代码语言:javascript
复制
let coolInput = document.getElementById('cool-input');

// Not sure if that covers everything
coolInput.addEventListener('keyup', handleInput);
coolInput.addEventListener('change', handleInput);
coolInput.addEventListener('paste', handleInput);

function handleInput() {
  if (coolInput.value == '-1') {
    coolInput.classList.add('unlimited');
  } else {
    coolInput.classList.remove('unlimited');
  }
}
代码语言:javascript
复制
form {
  position: relative;
}

input[type="text"],
input[type="number"] {
  color: #333;
  font-size: 16px;
  padding: 5px;
  width: 100px;
}
  
#unlimited-input {
  border: 1px solid #fff;
  position: absolute;
  z-index: -1;
}
  
#cool-input {
  background: #fff;
  border: 1px solid #999;
  opacity: 1;
}
  
#cool-input.unlimited {
  background: transparent;
  color: transparent;
}
代码语言:javascript
复制
<form>
  <input id="unlimited-input" type="text" readonly value="unlimited">
  <input id="cool-input" type="number" min="-1" placeholder="Amount">
</form>

(JSFiddle)

效果出奇的好。虽然还没有在IE和iOS中测试过。

票数 1
EN

Stack Overflow用户

发布于 2019-01-10 00:14:10

这会起作用的-

代码语言:javascript
复制
$("#q").change(()=>{

if($("#q").val()==-1)
$("#w").val("unlimited")
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" min="-1" id="q"/>
<input type="text" id="w"/>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54114054

复制
相关文章

相似问题

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