使用 java 脚本未更改 HTML 输入字段的属性

2024-03-18

我有一个表格,有两个字段文具类型和文具请求数量。表格的信纸 rqst 数量字段接受该数字。可以在此字段中输入的最小数量(数量)取决于信纸类型字段的值,即,如果信纸类型字段值为“铅笔”,则信纸请求数量字段的最小值属性应为 5,并且如果是“记事本”,那么文具请求数量字段的最小属性应该是 10。我正在按照给定的代码执行此操作,但它不起作用。它始终给出第一个文具类型的 qnty jsfiddle 是jsfiddle https://jsfiddle.net/fta6sdm8/3/show

function random() {
                    document.querySelector('[name="stationerytype[]"]').value = ""
  
                    var a = document.getElementById('purpose').value;
                    if (a === "Meeting") {
                    var datalist = "datalist1";
                    } else if (a === "Departmental") {
                    var datalist = "datalist2";
                    }
    
                    document.querySelector('[name="stationerytype[]"]').setAttribute("list", datalist)

                    }
          
          var options = document.querySelectorAll(".option1");
            options.forEach(function(option) {
              option.addEventListener("keyup", function() {
                calculatingMinimunQuantity(option);
              });
              option.nextElementSibling.addEventListener('change', evt => {
                if (+evt.target.value < +evt.target.min) evt.target.value = evt.target.min
              });
            });
            
            function calculatingMinimunQuantity(option) {
              var minimum = 0, step1 = 0;
              var value = option.value;
              if (value === "PENCIL") {
                minimum = "5";
                step1="5";
              } else if (value === "NOTEPAD") {
                minimum = "10";
                step1="10";
              }
              //   getting the quantity input field
              option.nextElementSibling.setAttribute("min", minimum);
              option.nextElementSibling.setAttribute("step", step1);
              
        }
<div class="col-sm-6">
                    <label for="purpose">Purpose</label>
                    <select type="text" name="purpose" id="purpose" class="form-control" onchange="random()" required />
                    <option ></option>
                    <option value="Meeting">Meeting</option>
                    <option value="Departmental">Departmental</option>
                    </select>
                    </div>
                  
        <td><input  type="text" name="stationerytype[]" id="stationerytype" class="option1 form-control" autocomplete="off"  required>
                <datalist id="datalist1" >
                <option value=""></option>
                <option value="MEETING PEN">MEETING PEN</option>
                <option value="NOTEPAD">NOTEPAD</option>
                <option value="PLASTIC FOLDER">PLASTIC FOLDER</option>
                <option value="PENCIL">PENCIL</option>
                </datalist> 
                
                <datalist id="datalist2" >
                <option value=""></option>
                <option value="A4 GREEN REAM">A4 GREEN REAM</option>
                <option value="A4 WHITE REAM">A4 WHITE REAM</option>
                <option value="BMO LETTER HEAD">BMO LETTER HEAD</option>
                </datalist>
          </td>
                            
                    
                            
        <td><input type="NUMBER" name="stationeryqtyrqst[]" id="stationeryqtyrqst" class="form-control" required ></td>

您正试图获得nextSibling的元素option在 JS 函数中,但是nextSibling选取的元素是body元素。如果您正在使用td元素,那么你需要正确使用tableJS 正常工作的元素。

这是更新的 HTML 和 JS 来满足您的要求。

<div class="col-sm-6">
  <label for="purpose">Purpose</label>
  <select type="text" name="purpose" id="purpose" class="form-control" onchange="random()" required />
    <option ></option>
    <option value="Meeting">Meeting</option>
    <option value="Departmental">Departmental</option>
  </select>
</div>
                    
<table>
  <tbody>
    <tr>             
      <td><input  type="text" name="stationerytype[]" id="stationerytype" class="option1 form-control" autocomplete="off"  required>
        <datalist id="datalist1" >
          <option value=""></option>
          <option value="MEETING PEN">MEETING PEN</option>
          <option value="NOTEPAD">NOTEPAD</option>
          <option value="PLASTIC FOLDER">PLASTIC FOLDER</option>
          <option value="PENCIL">PENCIL</option>
        </datalist> 

        <datalist id="datalist2" >
          <option value=""></option>
          <option value="A4 GREEN REAM">A4 GREEN REAM</option>
          <option value="A4 WHITE REAM">A4 WHITE REAM</option>
          <option value="BMO LETTER HEAD">BMO LETTER HEAD</option>
        </datalist>
      </td>   
      <td><input type="NUMBER" name="stationeryqtyrqst[]" id="stationeryqtyrqst" class="form-control" required ></td>
    </tr>
  </tbody>
</table>

这是更新的 JS

function random() {
                    document.querySelector('[name="stationerytype[]"]').value = ""
  
                    var a = document.getElementById('purpose').value;
                    if (a === "Meeting") {
                    var datalist = "datalist1";
                    } else if (a === "Departmental") {
                    var datalist = "datalist2";
                    }
    
                    document.querySelector('[name="stationerytype[]"]').setAttribute("list", datalist)

                    }
          
          var options = document.querySelectorAll(".option1");
            options.forEach(function(option) {
              option.addEventListener("keyup", function() {
                calculatingMinimunQuantity(option);
              });
              option.nextElementSibling.addEventListener('change', evt => {
                if (+evt.target.value < +evt.target.min) evt.target.value = evt.target.min
              });
            });
            
            function calculatingMinimunQuantity(option) {
           
              var minimum = 0, step1 = 0;
              var value = option.value;
              if (value === "PENCIL") {
                minimum = "5";
                step1="5";
              } else if (value === "NOTEPAD") {
                minimum = "10";
                step1="10";
              }
              
              //   getting the quantity input field
              option.parentNode.nextElementSibling.firstChild.setAttribute("min", minimum);
              option.parentNode.nextElementSibling.firstChild.setAttribute("step", step1);
              
        }
              
    
                        
                
                        
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 java 脚本未更改 HTML 输入字段的属性 的相关文章

  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • iOS7 中“-webkit-overflow-scrolling: touch” 最初的屏幕外元素被破坏

    既然转基因种子已经发布了 我们现在可以谈谈了 看起来 iOS7 中的 webkit overflow scrolling touch 已损坏 最初不在屏幕上的元素的触摸事件不会触发 或者在某些情况下只是不可靠 这是一个例子
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 如何延迟加载嵌入在 iframe 上的 YouTube 视频?

    如何将延迟加载应用于iframe嵌入视频 我尝试添加loading eager loading auto and loading lazyload 您可以使用srcdoc你里面的属性iframe标签来加载图像 请参阅以下示例作为参考
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 修复了 Octave urlread 导致无法使用给定 CA 证书对对等证书进行身份验证的问题

    Question 如何修复 不是解决方法 Octave 假设 libcurl 与 Octave 捆绑 urlread 导致无法使用给定的 CA 证书对对等证书进行身份验证 读过pkg 在 Windows 中从 forge 安装 http o
  • 通过命令行连接到 smtp.gmail.com

    我正在编写一个通过有效的 GMail 用户 ID 和密码发送邮件的应用程序 我只是想在 Windows XP 命令行上模拟 SMTP 连接 当我远程登录时smtp gmail com在 465 端口 我没有看到任何东西 带标题的空白命令窗口
  • PHPWord 导出给出损坏的 Word 文件

    我使用了 PHPWord 网站上的示例代码 http phpword codeplex com documentation http phpword codeplex com documentation当我尝试使用 Word 打开它时 出现
  • Laravel Production 问题 - 使用 Laravel 4.1.x 更新作曲家

    到目前为止 我在部署 Laravel 项目时还没有遇到任何问题 我已经为这个项目部署了将近一年 但出现了一些新的错误 首先 我无法运行作曲家更新 因为它显示此错误 composer update Warning This developme
  • 使用 JDBC 实现迭代器设计模式

    我正在解决以下问题 迭代器设计模式是一种封装性很强的设计模式 举个例子 图书馆需要一个图书管理系统 一堂课为books 存储他们的详细信息和一个类library存储书籍和书架编号 假设图书馆希望使用以下方式将数据存储在数据库中JDBC 如何
  • 程序自我更新的最佳方式

    终止程序然后从正在终止的程序运行附加代码的最佳方法是什么 例如 程序自我更新的最佳方式是什么 您有几个选择 您可以使用另一个应用程序 exe 来进行自动更新 这可能是最好的方法 您还可以在程序运行时重命名程序的 exe 因此 您可以从某个更
  • Java中获取资源文件夹中的文件

    我想读取 Java 项目的资源文件夹中的文件 我为此使用了以下代码 MyClass class getResource myFile xsd getPath 我想检查文件的路径 但它给出了以下路径 file home malintha m2
  • iOS7 导航栏上方的状态栏

    我正在使用 iOS7 测试我的应用程序 但状态栏有问题 基本上状态栏出现在导航栏上 如下图所示 我试着打电话给我viewDidLoad self edgesForExtendedLayout UIRectEdgeNone self auto
  • Webpack @font-face相对路径问题

    我在 angular2 应用程序中使用相对路径加载字体时遇到问题 在 app ts 中我有这两个导入 import public css fonts less import public css main less 在 fonts less
  • WPF组合框基于文本输入的动态过滤

    我似乎无法找到一种直接方法来实现将文本输入过滤到 WPF 组合框中的项目列表中 通过将 IsTextSearchEnabled 设置为 true 组合框下拉列表将跳转到第一个匹配项 我需要的是将列表过滤为与文本字符串匹配的任何内容 例如 如
  • 无法安装 Windows 7 SDK(需要已安装 .NET Framework 4)

    I m trying to install windows 7 SDK on Windows 8 and Windows 10 machines and got this error 如果我单击 确定 我将无法安装我需要的 VC 编译器 因
  • 如何在文件夹及其所有子文件夹中搜索特定类型的文件

    我试图在给定文件夹中搜索给定类型的所有文件并将它们复制到新文件夹 我需要指定一个根文件夹 并在该文件夹及其所有子文件夹中搜索与给定类型匹配的任何文件 如何搜索根文件夹的子文件夹及其子文件夹 看起来递归方法可行 但我无法正确实现 尝试这个 D
  • jQuery 更改媒体查询宽度值

    是否可以与jQuery或其他任何改变宽度值 media query css当页面运行时 例如 如果在 style css 中我有 media screen and min width 400px whatever 将其更改为500px网站加
  • 重新运行(相同)代码后出现 KeyError

    当我尝试运行以下代码时返回 KeyError import pandas as pd import networkx as nx from matplotlib import pyplot as plt G nx from pandas e
  • 如何使用 PIL 创建透明 gif(或 png)(python-imaging)

    尝试去create带 PIL 的透明 gif 到目前为止我有这个 from PIL import Image img Image new RGBA 100 100 255 0 0 0 img save test gif GIF transp
  • java中维护插入顺序的Maps(集合)

    我需要在 Android 应用程序中使用 Java 中的地图 但问题是列表会自动排序 如何使用地图以与插入数据相同的顺序获取数据 你应该使用LinkedHashMap为此目的 访问安卓文档 http developer android co
  • 使用fluid_styled_content,如何在TYPO3 7.5和7 LTS中创建自定义内容元素?

    有人告诉我 使用新的 Fluid styled content 系统扩展在 TYPO3 7 5 中为后端设置自定义的结构化内容元素是一件轻而易举的事 看完之后sysext fluid styled content and sysext ba
  • 如何从 Canvas 对象中删除边框和角? [Fabric.js]

    我在一个项目中使用fabric js 用户可以在画布上绘图 然后保存到png图像 使用canvas toDataURL 函数 但是 我们注意到 如果用户移动对象并单击 保存 按钮 它会保存先前移动的对象的边框和角 当您移动或调整对象大小时
  • 在 SQL Server 2005 中,当用户拥有管理员权限时,有没有办法将默认模式设置为 dbo 以外的任何模式? [复制]

    这个问题在这里已经有答案了 我正在使用带有 Windows 身份验证的 SQL Server 2005 我的登录有管理员权限 对于我的登录 我有一个用户映射到数据库 默认模式设置为 my schema 我的登录名不是数据库的所有者 当我登录
  • 使用 java 脚本未更改 HTML 输入字段的属性

    我有一个表格 有两个字段文具类型和文具请求数量 表格的信纸 rqst 数量字段接受该数字 可以在此字段中输入的最小数量 数量 取决于信纸类型字段的值 即 如果信纸类型字段值为 铅笔 则信纸请求数量字段的最小值属性应为 5 并且如果是 记事本