[英]Change `max` or `min` dynamically in html5 with jquery
我在<input type='number'>
更改了max
问题。 这是我的示例代码:
$(document).ready(function(){ var total = 5; $(.foo).attr('max', total); $(.bar).attr('max', total); $(.ext).attr('max', total); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <input type='number' name='foo' class='foo'> <br> <input type='number' name='bar' class='bar'> <br> <input type='number' name='ext' class='ext'> </body>
如何使max
必须不>总?
例如:如果我在foo上输入2并在bar上输入1,则ext上的值不得大于2。
谢谢
正如Chris的评论中所提到的,它应该是'.foo'
而不是.foo
。 另外作为简写,您可以将它们放在如下所示的单个语句中,如$('.foo, .bar, .ext')
如果它们具有相同的max
。
$(document).ready(function(){ var total = 5; $('.foo, .bar, .ext').attr('max', total); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <form action="http://stackoverflow.com"> <input type='number' name='foo' class='foo'> <br> <input type='number' name='bar' class='bar'> <br> <input type='number' name='ext' class='ext'> <br> <input type='submit' value='Submit' > </form> </body>
我假设您要将三个输入的任意组合的总和限制为5.这是一种方法:
$(document).ready(function(){ var total = 5; var remain; var $foo = $("#foo"); var $bar = $("#bar"); var $ext = $("#ext"); recalculateMax = function(el) { switch (el) { case $foo[0]: remain = total - $bar.val() - $ext.val(); remain = remain < 0 ? 0 : remain $foo.val(($foo.val() <= remain) ? $foo.val() : remain); break; case $bar[0]: remain = total - $foo.val() - $ext.val(); remain = remain < 0 ? 0 : remain $bar.val(($bar.val() <= remain) ? $bar.val() : remain); break; case $ext[0]: remain = total - $foo.val() - $bar.val(); remain = remain < 0 ? 0 : remain $ext.val(($ext.val() <= remain) ? $ext.val() : remain); break; } } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <input id="foo" type='number' name='foo' onChange="recalculateMax(this)"> <br> <input id="bar" type='number' name='bar' onChange="recalculateMax(this)"> <br> <input id="ext" type='number' name='ext' onChange="recalculateMax(this)"> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.