Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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
Javascript 如果值超过最大值,则验证内部输入_Javascript_C#_Html_Asp.net Mvc - Fatal编程技术网

Javascript 如果值超过最大值,则验证内部输入

Javascript 如果值超过最大值,则验证内部输入,javascript,c#,html,asp.net-mvc,Javascript,C#,Html,Asp.net Mvc,我有一个数据表,我在ASP.NET MVC中使用C#在razor视图中呈现 为了给我的目标做一个简短的例子,让我们以这个表格为例 函数setValueAttr(el){ el.setAttribute('value',el.value) } 函数aplicar(){ var myTab=document.queryselectoral('tableID tbody tr.txtID:not([value=”“]); var tableData=[]; Array.from(myTab.forE

我有一个数据表,我在ASP.NET MVC中使用C#在razor视图中呈现

为了给我的目标做一个简短的例子,让我们以这个表格为例

函数setValueAttr(el){
el.setAttribute('value',el.value)
}
函数aplicar(){
var myTab=document.queryselectoral('tableID tbody tr.txtID:not([value=”“]);
var tableData=[];
Array.from(myTab.forEach)(输入=>{
var tds=输入。最近('tr')。子项;
var obj={};
obj.A=tds[0].textContent;
obj.B=tds[1].textContent;
obj.C=tds[2].textContent;
obj.D=tds[3]。文本内容;
obj.E=输入值;
tableData.push(obj);
});
console.log(tableData);
}

A.
B
C
D
E
瓦尔1
瓦尔2
val3
1500
瓦尔1
瓦尔2
val3
1500
瓦尔1
瓦尔2
val3
1500
Aplicar

您可以在脚本函数中添加一个简单的附加项来检查max。我认为,除非您使用观察器,否则您必须在javasctipt中进行检查

function aplicar() {
            var myTab = document.querySelectorAll('#tableID tbody tr .txtID:not([value=""])');
            var tableData = [];
            Array.from(myTab).forEach(input => {
                var tds = input.closest('tr').children;
                var obj = {};
                obj.A = tds[0].textContent;
                obj.B = tds[1].textContent;
                obj.C = tds[2].textContent;
                obj.D = tds[3].textContent;
                if(input.value > MAX)
                {
                    input.value = MAX;
                }
                obj.E = input.value;
                tableData.push(obj);
            });
            console.log(tableData);
        }

使用javascript设置属性值很可能会绕过输入元素的验证机制。为什么要使用javascript设置value元素?值属性是通过在输入元素中自己键入值来填充的。

添加了此属性

var myTab = document.querySelectorAll('#tableID tbody tr .txtID:not([value=""]):valid');

它修复了它,非常感谢大家,特别是@HereticMonkey解决了这个问题

我如何将javascript变量MAX指向我的html值?你可以创建一个字典,其中键是输入的id,值是你的最大值。这样,每个输入都可以有单独的最大值。
max
属性不会阻止您手动设置超过最大值的值;它只是将输入标记为无效。如果将传递给
querySelectorAll
的选择器更改为在末尾包含
:valid
,并在所有字段中输入
max
以上的值,它将返回一个空数组。要添加的语法是什么:在querySelectorAll末尾有效,只需将其添加到选择器的末尾:
document.querySelectorAll(“#tableID tbody tr.txtID:not([value=”“]):valid”)成功了,顺便问一下,你能链接我吗?我在哪里可以学会像你编辑我的文章一样使用“运行代码片段”并在你的评论中添加代码背景?另外,谢谢你的回答