如何在输入更改上提交表单而又不会卡住输入值?

道格拉斯·诺斯韦尔

我需要使用一对范围输入滑块中的值动态设置网格。基本上,我现在正在做的是将它们放在一个表单中,以便每次输入更改时都可以提交。但是,这不是解决方案,因为每次我尝试更改它时,它都会提交表单,因此输入滑块被“卡住”。

<form id='chartSize' method='get'>
    <div class="slidecontainer">
        <pre>Rows:   </pre>
        <input type="range" min="1" max="10" class="slider" name="rows" id="rows" 
        oninput="changeDimensions(true)">
        <output name="rowOutputName" id="rowOutputId"></output><br/>
        <pre>Columns:</pre>
        <input type="range" min="1" max="10" class="slider" name="columns" id="columns"
        oninput="changeDimensions(false)">
        <output name="colOutputName" id="colOutputId"></output><br/>
    </div>
</form>

任何帮助将不胜感激。

编辑:changeDimensions脚本实际上与问题有关。

这里是:

function changeDimensions(opt)
{
    if(opt==true)
    {
        rowOutputId.value = rows.value;
    }
    else
    {
        colOutputId.value = columns.value;
    }

    document.getElementById('chartSize').submit();
}
一定的表现

form在这种情况下使用a的唯一原因是为了提供可访问性:使用表单通常原因是使用户能够输入值,然后将这些值发送到服务器。您并没有这样做-您要做的就是获取输入的值并使用它们,而不必提交表单

另外,您不应该在HTML内添加Javascript处理程序-它们本质上是eval在HTML标记内,并且会导致分解系数差,难以管理的代码。用Javascript附加侦听器:

const rowOutputId = document.querySelector('#rowOutputId');
const colOutputId = document.querySelector('#colOutputId');
const rows = document.querySelector('#rows');
const columns = document.querySelector('#columns');
rows.addEventListener('change', () => rowOutputId.value = rows.value);
columns.addEventListener('change', () => colOutputId.value = columns.value);
<form id='chartSize' method='get'>
  <div class="slidecontainer">
    <pre>Rows:   </pre>
    <input type="range" min="1" max="10" class="slider" id="rows">
    <output id="rowOutputId"></output><br/>
    <pre>Columns:</pre>
    <input type="range" min="1" max="10" class="slider" id="columns">
    <output id="colOutputId"></output><br/>
  </div>
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在列中输入一组值,而又不更改预先存在的条目?

如何完全重置表单,而又不会重新出现用户的先前输入?

如何在提交表单之前从 JavaScript 更改输入值

在生成新输入时如何在终端窗口中向上滚动而又不会回到底部(Linux)

在提交表单之前如何做而又不使用默认值

提交表单前更改输入文本值

在输入字段的更改值上提交表单

jQuery提交表单(如果更改输入值)

如何在提交脚本中使用表单输入值?

(Django) 如何在表单提交后保留输入值

AngularJS:表单输入更改上的启用按钮

如何在提交时在Codeigniter中更改输入属性“值”

为什么通过提交带有链接的表单不会更改输入文本值?

更改输入值并在JavaScript中提交表单

在使用jQuery提交表单之前更改输入值

单击提交按钮后如何使用 React 更改表单输入的值

jQuery在输入字段的更改上,在各个元素中更改值

提交表单时如何避免刷新页面而又不致使页面滞后?

如何在php表单提交中使用isset输入分配数组多个值

如何在Chrome浏览器控制台中提交带有输入值的表单?

如何在laravel中提交表单之前在模态中添加具有值的附加输入

提交Flask WTForms时,如何将字段保留为空白而又不会从数据库表中清除这些值?

如何在React中的输入更改上实现去抖自动保存?

如何在TableView单元格中显示URL图像而不会卡住?

提交表单时如何获取隐藏输入字段的值?

调用ajax函数从html提交表单如何传递输入值?

如何在表单中仅提交1个输入字段?

反应如何在输入模糊时触发表单提交?

提交表单之前如何在单选输入上设置CustomValidity