Javascript jQuery输入数字微调器
我有jQuery微调器上下编号的代码: HTML:Javascript jQuery输入数字微调器,javascript,jquery,Javascript,Jquery,我有jQuery微调器上下编号的代码: HTML: <div class="container"> <div class="input-group spinner"> <input type="text" class="form-control" value="42"> <div class="input-group-btn-vertical"> <div class="btn btn-default">
<div class="container">
<div class="input-group spinner">
<input type="text" class="form-control" value="42">
<div class="input-group-btn-vertical">
<div class="btn btn-default"><i class="fa fa-caret-up"></i></div>
<div class="btn btn-default"><i class="fa fa-caret-down"></i></div>
</div>
</div>
</div>
这是可行的,但我需要添加两个选项:
- 防止用户将数字添加到输入
- 设置数字的最大值和最小值
<input type="text" class="form-control" value="42">
致:
从您的问题中我不太明白您是否希望用户能够更改值,如果您不希望他们更改值,只需将readonly属性添加到输入字段,如下所示
<input type="number" min="0" max="10" steps="1" class="form-control" value="5" readonly>
更改:
<input type="text" class="form-control" value="42">
致:
从您的问题中我不太明白您是否希望用户能够更改值,如果您不希望他们更改值,只需将readonly属性添加到输入字段,如下所示
<input type="number" min="0" max="10" steps="1" class="form-control" value="5" readonly>
要使用jQuery完成这一切,我假设您需要:
$(document).ready(function(){
//Stop people from typing
$('.spinner input').keydown(function(e){
e.preventDefault();
return false;
});
var minNumber = 1;
var maxNumber = 10;
$('.spinner .btn:first-of-type').on('click', function() {
if($('.spinner input').val() == maxNumber){
return false;
}else{
$('.spinner input').val( parseInt($('.spinner input').val(), 10) + 1);
}
});
$('.spinner .btn:last-of-type').on('click', function() {
if($('.spinner input').val() == minNumber){
return false;
}else{
$('.spinner input').val( parseInt($('.spinner input').val(), 10) - 1);
}
});
});
我没有查过,但应该很准确
工作小提琴:要使用jQuery完成这一切,我假设您需要:
$(document).ready(function(){
//Stop people from typing
$('.spinner input').keydown(function(e){
e.preventDefault();
return false;
});
var minNumber = 1;
var maxNumber = 10;
$('.spinner .btn:first-of-type').on('click', function() {
if($('.spinner input').val() == maxNumber){
return false;
}else{
$('.spinner input').val( parseInt($('.spinner input').val(), 10) + 1);
}
});
$('.spinner .btn:last-of-type').on('click', function() {
if($('.spinner input').val() == minNumber){
return false;
}else{
$('.spinner input').val( parseInt($('.spinner input').val(), 10) - 1);
}
});
});
我没有查过,但应该很准确
工作小提琴:更好的方法:
假设您必须将该数据发送回服务器,设置input readonly属性并为输入值添加一些限制就相当容易了。 这是演示
假设您必须将数据发送回服务器,设置输入只读属性并对输入值添加一些限制,这相当容易。 这是演示
使用此功能,您可以动态添加任意多个跨浏览器兼容的微调器(甚至IE)。当然,您必须包含jquery所需的js和css文件 首先,您必须创建您的输入。请记下该id,以便稍后使用。我总是在输入中为id和name参数输入相同的值
然后把这个放在你的头部
function createSpinner(elemName, elemVal, elemMin, elemMax, elemStep){
var mySpinner = $( '#' + elemName ).spinner({
min: elemMin,
max: elemMax,
step: elemStep,
change: function( event, ui ) {
var typedVal = $( '#' + elemName ).spinner( 'value' );
if (typedVal < elemMin || typedVal > elemMax) {
alert('Value must be between ' + elemMin + ' and ' + elemMax);
$('#' + elemName).spinner('value', elemVal);
}
}
});
$('#' + elemName).spinner('value', elemVal);
};
有了它,您可以动态添加任意多个跨浏览器兼容的微调器(甚至IE)。当然,您必须包含jquery所需的js和css文件 首先,您必须创建您的输入。请记下该id,以便稍后使用。我总是在输入中为id和name参数输入相同的值
然后把这个放在你的头部
function createSpinner(elemName, elemVal, elemMin, elemMax, elemStep){
var mySpinner = $( '#' + elemName ).spinner({
min: elemMin,
max: elemMax,
step: elemStep,
change: function( event, ui ) {
var typedVal = $( '#' + elemName ).spinner( 'value' );
if (typedVal < elemMin || typedVal > elemMax) {
alert('Value must be between ' + elemMin + ' and ' + elemMax);
$('#' + elemName).spinner('value', elemVal);
}
}
});
$('#' + elemName).spinner('value', elemVal);
};
如果您真的不想使用
type=“number”
-输入,您可以在span
或类似文件中显示数字,并将值存储在隐藏的输入字段中,如果您真的不想使用type=“number”
-输入,您可以将数字显示在span
或类似的内容中,并将值存储在隐藏的输入字段中,您可能希望将readonly
属性添加到input
元素中,以防止用户像OP要求的那样写入其中。您的代码未工作:请在回答之前检查正在运行的代码!如果你删除你的JS,我不太确定你想用它实现什么。您的问题可以是这样的,也可以是这样的,这样我们就可以理解您真正想要做的事情,您可能需要将readonly
属性添加到input
元素中,以防止用户像OP提问那样写入该元素。您的代码不起作用:请在回答之前检查正在运行的代码!如果你删除你的JS,我不太确定你想用它实现什么。或者你的问题,这样我们就可以理解你到底想做什么
createSpinner('elementName','0','0','10000','1');