向 html 输入元素添加默认值会冻结递增/递减功能

Posted

技术标签:

【中文标题】向 html 输入元素添加默认值会冻结递增/递减功能【英文标题】:Adding a default value to html input element freezes the increment/decrement functionality 【发布时间】:2020-06-09 09:41:37 【问题描述】:

这是我表格的一行:

在最后一列Quantité中,用户应该增加/减少该字段,并且值将相应地增加或减少。

我通过在最后一列中添加 input 元素并使其 type : number 来实现这一点。自动添加递增/递减功能。 这比做两个按钮以及随之而来的所有额外痛苦要简单得多。

  <input
                                type="number"
                                className="form-control"
                                id="qte"
                                min="0"
                                max="200"
                              />

无论如何,由于初始值将从数据库中检索,因此我必须为最后一列设置默认值:

 value="5"

但是,当我点击输入字段中的递增/递减时,什么也没有发生。 知道为什么会发生这种情况以及如何解决这个问题吗?

【问题讨论】:

你是怎么做到的?显示您设置默认值的代码?你是在渲染时还是在使用 Jquery 之后呢?只需添加 value="5" 不会引起任何问题。其次,重要的是,ID 必须是唯一的。每个元素都应该有一个唯一的 ID。在我们的例子中,每一行的 qte 是 id="qte" @NawedKhan 是的,添加 value="5" 将默认值设置为 5,显示 5 并冻结递增/递减功能。换句话说,我点击并没有任何反应。 w3schools.com/tags/att_input_type_number.asp ===> value - 指定默认值 我不同意。增加价值与任何事情无关。它甚至不是 javascript 或 JQuery 问题。这是一个示例,它可以完美运行jsfiddle.net/avL06gy8 您没有共享 javascript 代码。它在何时何地冻结?您要分享的内容还有很多。 我在 React App 中尝试过,也遇到了你的问题,我不知道原因,但看起来你需要做两个按钮来更改值:/ @AhmedGhrib跨度> 【参考方案1】:

如果您尝试实现这是 React 应用程序,请将 value 替换为 defaultValue。查看反应文档以了解更多关于不受控制的组件Here。检查sn-p

class Hello extends React.Component 
 
  render() 
    return ( 
    <div> <p>Input React Sample</p>
    <input type="number" min="0" max="100" defaultValue="5"/>
    </div>
    
    );
  
;

ReactDOM.render( < Hello / > , document.getElementById("app_root"));
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.0/react.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.2.0/react-dom.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.25/browser-polyfill.min.js"></script>
</head>

<body>
  <div id="app_root"></div>

  <script type="text/babel">

  </script>
</body>

如果问题是在html中,则不需要默认值,只需添加value="your_initial_value"

&lt;input type="number" min="0" max="100" value="5" /&gt;

【讨论】:

以上是关于向 html 输入元素添加默认值会冻结递增/递减功能的主要内容,如果未能解决你的问题,请参考以下文章

在递减然后递增并且可能包含重复项的列表中查找最小值

从输入类型号递增而不是递减值

单调栈算法 入门+博客推荐+模板

使最大公约数为 K 的递增/递减操作

指针的递增递减

由于某种原因,向 TextInput 添加值会更改字体粗细