Javascript 递增输入类型编号
你好,我有一个数字类型的输入,形式是一个金额,我做了两个按钮,一+和一-按钮来增加,减少金额,问题是在某些情况下,增量不应该是1,而是2,5,15,等等 所以我做了这件事: 我的表格:Javascript 递增输入类型编号,javascript,jquery,Javascript,Jquery,你好,我有一个数字类型的输入,形式是一个金额,我做了两个按钮,一+和一-按钮来增加,减少金额,问题是在某些情况下,增量不应该是1,而是2,5,15,等等 所以我做了这件事: 我的表格: <div id="ModalScan" class="modal fade" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="m
<div id="ModalScan" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
Scannez les codes-barres à ajouter à la commande.
</div>
<div class="modal-body" style="height: 214px;">
<br/>
{{ form_start(scan_form, {'attr': {'id' : 'scan-reassort', 'class' : 'form-inline'}}) }}
{{ form_label(scan_form.gencode) }}
{{ form_errors(scan_form.gencode) }}
{{ form_widget(scan_form.gencode, {'attr': {'onkeyup': 'showHint(this.value)'} }) }}
<br><label>Designation : </label><span id="designationModal" style="padding-left: 20px;"></span><br>
<br><label>Prix unitaire : </label><span id="prixModal" style="padding-left: 20px;"></span><br>
<br><label>Colisage : </label><span id="colisageModal" style="padding-left: 40px;"></span><br>
{{ form_label(scan_form.quantite) }}
{{ form_errors(scan_form.quantite) }}
{{ form_widget(scan_form.quantite, {'attr': {'min': '','value': ''}})}}
<a href="#ajout" id="plus"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></a> <a href="#moins" id="moins"><span class="glyphicon glyphicon-minus" aria-hidden="true"></span></a><br/><br/>
{{ form_rest(scan_form) }}
{{ form_end(scan_form) }}
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-menu" value="Valider">
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
我不知道为什么,但这根本不起作用,我尝试过很多方法,比如:
$(function(){
var input = $('#reassort_scan_quantite');
var inputValue = parseInt(input.val());
var plus = $('#plus');
var moins = $('#moins');
var colisage = parseInt(input.attr("data-colisage"));
var min = parseInt(input.attr("min"));
var step = (min < 2) ? 1 : colisage;
var miniCommande = parseInt(input.attr('min'));
function addition(){
if(miniCommande < 2){
inputValue++;
}
else{
inputValue = inputValue + colisage;
}
input.val(inputValue);
}
function soustraction(){
if(input.val() > 1){
if(miniCommande < 2){
inputValue--;
}
else{
inputValue = inputValue - colisage;
}
input.val(inputValue);
}
}
$('#plus').click(function (e) {
e.preventDefault();
addition();
});
$('#moins').click(function(e){
e.preventDefault();
soustraction();
});
});
$(函数(){
var输入=$('重新分类'扫描'量化');
var inputValue=parseInt(input.val());
var plus=$(“#plus”);
变量moins=$(“#moins”);
var colisage=parseInt(input.attr(“数据colisage”);
var min=parseInt(input.attr(“min”));
var阶跃=(最小值<2)?1:大肠杆菌;
var minicomande=parseInt(input.attr('min'));
函数加法(){
如果(迷你命令<2){
inputValue++;
}
否则{
输入值=输入值+共列;
}
input.val(inputValue);
}
函数soutraction(){
if(input.val()>1){
如果(迷你命令<2){
输入值--;
}
否则{
inputValue=inputValue-共列;
}
input.val(inputValue);
}
}
$('#plus')。单击(函数(e){
e、 预防默认值();
加法();
});
$('#moins')。单击(函数(e){
e、 预防默认值();
soutraction();
});
});
但是仍然没有工作:/,有人能帮我吗
这是我需要的东西,但在我的例子中,值是在页面加载后设置的。您应该能够使用浏览器本身来生成此功能,而不是自己进行艰苦的工作。例如:
正如我在评论中所说的,请阅读方法中的值/属性。基本思想,无需有两种不同的方法
$(“[data dir]”)。在(“单击”上,函数(){
var dir=$(this).data(“dir”),
inp=$(“#x”),
步骤=编号(输入数据(“步骤”),
最小值=数量(输入数据(“最小”),
val=数字(inp.val());
val=dir*step+val;
如果(val
+
-
我找到了答案,谢谢大家
$(function () {
console.log("toto");
function addition() {
var input = $('#reassort_scan_quantite');
var inputValue = parseInt(input.val());
var colisage = parseInt(input.attr("data-colisage"));
var min = parseInt(input.attr("min"));
var miniCommande = parseInt(input.attr('min'));
if (miniCommande === 1) {
inputValue++;
} else {
inputValue = inputValue + colisage;
}
input.val(inputValue);
}
function soustraction() {
var input = $('#reassort_scan_quantite');
var inputValue = parseInt(input.val());
var colisage = parseInt(input.attr("data-colisage"));
var min = parseInt(input.attr("min"));
var miniCommande = parseInt(input.attr('min'));
if (input.val() > min) {
if (miniCommande === 1) {
inputValue--;
} else {
inputValue = inputValue - colisage;
}
input.val(inputValue);
}
}
$('#plus').click(function (e) {
e.preventDefault();
addition();
});
$('#moins').click(function (e) {
e.preventDefault();
soustraction();
});
});
现代浏览器内置了它。您需要调用var-inputValue=parseInt(input.val())代码>内部addition
和soutraction
加载页面时,代码读取值/属性。如果在页面加载后更新值,则不会获得新值。单击按钮时,您需要读取方法内部的值,以确保您具有最新的值。@epascarello我如何才能做到?读取方法内部的值和属性…这并不能回答实际问题,而且没有考虑OP所需的UI/UX。这可能会起作用,但我也必须为Internet Explorer 9制作。听到这个消息我很难过:(那么…你想让控制台打印字符串“toto”而不是数字?那么,你想打印数字“toto”而不是15或237或其他任何数字吗?(toto是数字?!?)@zer00ne console.log只是一个测试,所以请查看脚本何时执行。
$(function () {
console.log("toto");
function addition() {
var input = $('#reassort_scan_quantite');
var inputValue = parseInt(input.val());
var colisage = parseInt(input.attr("data-colisage"));
var min = parseInt(input.attr("min"));
var miniCommande = parseInt(input.attr('min'));
if (miniCommande === 1) {
inputValue++;
} else {
inputValue = inputValue + colisage;
}
input.val(inputValue);
}
function soustraction() {
var input = $('#reassort_scan_quantite');
var inputValue = parseInt(input.val());
var colisage = parseInt(input.attr("data-colisage"));
var min = parseInt(input.attr("min"));
var miniCommande = parseInt(input.attr('min'));
if (input.val() > min) {
if (miniCommande === 1) {
inputValue--;
} else {
inputValue = inputValue - colisage;
}
input.val(inputValue);
}
}
$('#plus').click(function (e) {
e.preventDefault();
addition();
});
$('#moins').click(function (e) {
e.preventDefault();
soustraction();
});
});