Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入“;“步骤”;与jQuery&;HTML5。为什么?_Jquery_Html_Input - Fatal编程技术网

输入“;“步骤”;与jQuery&;HTML5。为什么?

输入“;“步骤”;与jQuery&;HTML5。为什么?,jquery,html,input,Jquery,Html,Input,我使用HTML5和jQuery在HTML的输入标记中使用“步骤”属性。它工作得很好,但我想做的是将默认值设为1,然后步长必须为33(这也是使用javascript计算的,每次都在变化,但在本例中它应该是33),我希望数字是33,而不是34(因为默认值是1+33=34的步长),但我希望是33、66、99。。。等等我正在使用此代码执行此操作: HTML: 但你可以从这里看到:它做错了什么。它是从1到33,然后当我按下向上键时,它会到34,然后到66,然后到67,然后到99,然后到100,依此类推。为

我使用HTML5和jQuery在HTML的输入标记中使用“步骤”属性。它工作得很好,但我想做的是将默认值设为1,然后步长必须为33(这也是使用javascript计算的,每次都在变化,但在本例中它应该是33),我希望数字是33,而不是34(因为默认值是1+33=34的步长),但我希望是33、66、99。。。等等我正在使用此代码执行此操作:

HTML:

但你可以从这里看到:它做错了什么。它是从1到33,然后当我按下向上键时,它会到34,然后到66,然后到67,然后到99,然后到100,依此类推。为什么?


应该是33,然后是66,然后是99!我需要帮助

当设置min=1和step=33时,您的输入接受以下值:1、34、67、100,。。。
然后在触发更改事件时减去1。它接受的下一个值就是减法之前的值。当它是34时,你减去1,它变成33。然后它接受的下一个值也是34。

问题是HTML步长计算在更改数字时考虑了最小值。此外,当您连接到输入的
change
方法时,最好
返回false
,以防止在更改相同输入的值时出现循环循环

工作小提琴:

HTML:


也许这不是最好的方法,看起来也不是,因为它不起作用,但当我希望默认值为1,步长为33,当它第一次开始进行步长时,忽略默认值,然后继续33、66、99等等,我该怎么做呢。。。我不知道该怎么做谢谢你!我是编程新手,当你这样写的时候,这很有意义:D@Баааааааааааааааа。
<input type="number" min="1" name="numeration_from" value="1">
$("input[name='numeration_from']").change(function () {
    $(this).val(Number($(this).val() - 1));
});

$("input[name='numeration_from']").attr("step", 33);
<input type="number" min="0" name="numeration_from" step="33">
$("input[name='numeration_from']").val(1);
$("input[name='numeration_from']").change(function () {
    if($(this).val() == 1){
        $(this).val(Number($(this).val() - 1));
        return false;
    }
    if($(this).val() == 0){
        $(this).val(Number($(this).val() + 1));
        return false;
    }
});