如何限制input输入框联动数值的最大数值?

qq_31673157 2017-10-25 11:54:36
有4个输入框分别为:A1,Y1,Y2,Y3
根据A1输入的数值分别限制Y1,Y2,Y3的最大输入数值(不是字符长度)。
公式为:
Y1的最大输入数值 = A1乘以500减去Y2减去Y3
Y2的最大输入数值 = A1乘以500减去Y1减去Y3
Y3的最大输入数值 = A1乘以500减去Y1减去Y2

例如:
A1=2
y2=3
y3=4
Y1输入框里最大只能输入的数值 : 2*500-3-4=993
...全文
1250 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_31673157 2017-10-25
  • 打赏
  • 举报
回复
引用 4 楼 jslang 的回复:
改一下,这样比较好

<form method="post" id="form1" >
	A1 <input type="text" name="a1" value="" /><br>
	Y1 <input type="text" name="y1" oninput="fg(this)" value="" /><br>
	Y2 <input type="text" name="y2" oninput="fg(this)" value="" /><br>
	Y3 <input type="text" name="y3" oninput="fg(this)" value="" /><br>
</form>
<script type="text/javascript">
function fg(t) {
	var f = document.getElementById("form1");
	var a1 = f.a1.value*1||0;
	var y1 = f.y1.value*1||0;
	var y2 = f.y2.value*1||0;
	var y3 = f.y3.value*1||0;
	var tv = t.value*1||0;
	if (y1+y2+y3>a1*500) {
		alert("输入的数大于最大值");
		t.value=a1*500-y1-y2-y3+tv;
	}
}
</script>
完美解决我的问题。
qq_31673157 2017-10-25
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:

<form method="post" id="form1" >
	A1 <input type="text" name="a1" value="" /><br>
	Y1 <input type="text" name="y1" oninput="fg(this)" value="" /><br>
	Y2 <input type="text" name="y2" oninput="fg(this)" value="" /><br>
	Y3 <input type="text" name="y3" oninput="fg(this)" value="" /><br>
</form>
<script type="text/javascript">
function fg(t) {
	var f = document.getElementById("form1");
	var a1 = f.a1.value*1||0;
	var y1 = t==f.y1?0:f.y1.value*1||0;
	var y2 = t==f.y2?0:f.y2.value*1||0;
	var y3 = t==f.y3?0:f.y3.value*1||0;
	if (t.value>a1*500-y1-y2-y3) {
		alert("输入的数大于最大值");
		t.value=a1*500-y1-y2-y3;
	}
}
非常感谢。
天际的海浪 2017-10-25
  • 打赏
  • 举报
回复
改一下,这样比较好

<form method="post" id="form1" >
	A1 <input type="text" name="a1" value="" /><br>
	Y1 <input type="text" name="y1" oninput="fg(this)" value="" /><br>
	Y2 <input type="text" name="y2" oninput="fg(this)" value="" /><br>
	Y3 <input type="text" name="y3" oninput="fg(this)" value="" /><br>
</form>
<script type="text/javascript">
function fg(t) {
	var f = document.getElementById("form1");
	var a1 = f.a1.value*1||0;
	var y1 = f.y1.value*1||0;
	var y2 = f.y2.value*1||0;
	var y3 = f.y3.value*1||0;
	var tv = t.value*1||0;
	if (y1+y2+y3>a1*500) {
		alert("输入的数大于最大值");
		t.value=a1*500-y1-y2-y3+tv;
	}
}
</script>
天际的海浪 2017-10-25
  • 打赏
  • 举报
回复

<form method="post" id="form1" >
	A1 <input type="text" name="a1" value="" /><br>
	Y1 <input type="text" name="y1" oninput="fg(this)" value="" /><br>
	Y2 <input type="text" name="y2" oninput="fg(this)" value="" /><br>
	Y3 <input type="text" name="y3" oninput="fg(this)" value="" /><br>
</form>
<script type="text/javascript">
function fg(t) {
	var f = document.getElementById("form1");
	var a1 = f.a1.value*1||0;
	var y1 = t==f.y1?0:f.y1.value*1||0;
	var y2 = t==f.y2?0:f.y2.value*1||0;
	var y3 = t==f.y3?0:f.y3.value*1||0;
	if (t.value>a1*500-y1-y2-y3) {
		alert("输入的数大于最大值");
		t.value=a1*500-y1-y2-y3;
	}
}
jio可 2017-10-25
  • 打赏
  • 举报
回复
Y1,Y2,Y3随便一个值变化都会影响最大值的范围,只能是在所有值都输入以后再做判断提示那些值不符合了
浪子回头8 2017-10-25
  • 打赏
  • 举报
回复
提交后比较一下,给出相应提示

61,128

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧