我有两个输入数字(最小和最大)。有没有办法阻止用户插入像min>这样的值最大值?
var domainList=angular.copy($scope.busdomain);
if(domainList!=null){
domainList[0].childNode.sort();
//For finding out the length of list
for (var i = 0; i < domainList[0].childNode.length; i++) {
//Here I want to add a check that I can get name only of objects in my list
//Please see the attached Object screenshot for better understanding
if (domainList[0].childNode[i].name!=null) {
var name=domainList[0].childNode[i].name;
domainList[0].childNode.splice(i,1,name);
$scope.busdomainname=domainList[0].childNode;
}
}
答案 0 :(得分:1)
没有JQuery,你可以试试这个:
(您必须将class
更改为id
)
var min = document.getElementById("inputMin");
var max = document.getElementById("inputMax");
function check() {
if (min.value > max.value) {
min.value = max.value;
}
};
min.addEventListener("input", check, false);
max.addEventListener("input", check, false);
您可以尝试there
答案 1 :(得分:0)
您可以使用参数min
和max
,如:
<form>
Quantity (between 1 and 5):
<input type="number" name="quantity" min="1" max="5">
</form>
参考:http://www.w3schools.com/html/html_form_input_types.asp(输入类型:数字)
此外,您可以使用Javascript检查值是>= min_number
还是<= max_number
,但两者都是客户端脚本,可以通过编辑html部分来绕过它。
您还需要进行服务器端检查,以确保它在该范围内。
答案 2 :(得分:0)
有许多不同的方法可以做到这一点。
一个选项是每当更改min时,如果它大于max,则将其更改为等于max,如下所示:
$('.inputMin').on('change', function() {
var max = parseFloat($('.inputMax').val());
var min = parseFloat($('.inputMin').val());
if (min > max) {
$('.inputMin').val(max);
}
});
或更改max的相反情况:
$('.inputMax').on('change', function() {
var max = parseFloat($('.inputMax').val());
var min = parseFloat($('.inputMin').val());
if (min > max) {
$('.inputMin').val(max);
}
});
另一种选择是在提交表单时显示错误,或者在用户更改输入时动态显示错误。
有许多JavaScript库可以让您轻松进行动态验证。查看Angular.js以及如何将其用于form validation。