Javascript 如何在接受浮点值的输入类型上设置最小值和最大值?
有很多例子展示了如何用整数设置最小值和最大值。我需要确保值的范围甚至可以是浮动的。下面是我如何为输入类型Javascript 如何在接受浮点值的输入类型上设置最小值和最大值?,javascript,html,jquery,frontend,Javascript,Html,Jquery,Frontend,有很多例子展示了如何用整数设置最小值和最大值。我需要确保值的范围甚至可以是浮动的。下面是我如何为输入类型退款金额设置属性值和最大值。这里的问题是,可以输入一个高于Jquery设置的最大值的值 window.onload = function() { var src = document.getElementById("grand_total"); var dst = document.getElementById("refund_amount&quo
退款金额
设置属性值和最大值。这里的问题是,可以输入一个高于Jquery设置的最大值的值
window.onload = function() {
var src = document.getElementById("grand_total");
var dst = document.getElementById("refund_amount");
if (dst != "") {
dst.setAttribute("value", src.textContent);
dst.setAttribute("max", src.textContent);
}
};
HTML:
输入退款金额
我如何确保它永远不允许比max属性保持的值更高?最小值
和最大值max
属性仅对type=“number”
输入起作用。还值得注意的是,它们作为验证手段并不可靠,因为它们不会阻止用户键入超出min
/max
设置范围的数字
要解决此问题,您可以使用change
事件和Math.min()
和Math.max()
函数手动验证值并将其更正为在范围内。试试这个:
window.addEventListener('load',function(){
var src=document.getElementById(“总计”);
var dst=document.getElementById(“退款金额”);
中频(dst){
dst.value=dst.max=src.textContent;
}
});
document.querySelectorAll('input[type=“number”]”)。forEach(input=>{
input.addEventListener('change',e=>{
设el=e.target;
el.value=Math.min(Math.max(el.value,el.min),el.max);
});
});代码>
总计
25.68
输入退款金额
使其min
和max
仅适用于type=“number”
输入-即使如此,它们作为验证手段也不可靠。例如,它们不会阻止用户输入大于max
允许的数字。如果您需要验证某个范围内的值,则需要手动执行。@RoryMcCrossan,请您分享一个演示如何手动执行的示例?一个演示如何比较值的示例-If(src.value>99)
@freedomn-m,谢谢,要实现您的解决方案,我应该有一个事件处理程序。对的
<tr>
<td align="right" colspan="3">Enter Refund Amount</td>
<td align="left" colspan="4"><input type="text" size="11" id="refund_amount"
name="refund_amount" value='' min="" max="" required/></td>
</tr>