Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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
C# JQuery数据表中复选框的Javascript验证_C#_Javascript_Jquery_Asp.net_Validation - Fatal编程技术网

C# JQuery数据表中复选框的Javascript验证

C# JQuery数据表中复选框的Javascript验证,c#,javascript,jquery,asp.net,validation,C#,Javascript,Jquery,Asp.net,Validation,我有一个与JQuery datatable绑定的表 <table id="grid1"> <thead> <tr> <th>Name</th> <th>View</th> <th>Modify</th> </tr> </thead> </table> 等待有价值的建议 更新 最后,我使用下面的javasc

我有一个与JQuery datatable绑定的表

<table id="grid1">
 <thead>
   <tr>
     <th>Name</th>
     <th>View</th>
     <th>Modify</th>
   </tr>
  </thead>
</table>
等待有价值的建议

更新 最后,我使用下面的javascript函数检查验证-

function Validate() {
    var allOk = true;
    $(grid1).find("tbody tr").each(function (){
        var row = $(this);
        if (!row.Modify && !row.View) {
            allOk = false;
        }
    });
    return allOk; // Make `Validate` return true only if all rows validate.
}

我试图做的是,如果未选中
Modify
View
,则返回
false
。当我使用
$(gridProfiles.fnGetData()).each(function()
而不是
$(grid1.find)(“tbody tr”).each(function()
)检查时,一切正常。但是网格行是动态添加的,使用
$(gridProfiles.fnGetData())时不会列出最后添加的行。each(function()
。任何解决方案?

您应该添加一个临时变量,如oneIsSet=false,并在选中任何一个时更改该值

function Validate() {
    var allValid = true;
    $(grid1).find("tbody tr").each(function () {
        var row = $(this);
        var thisOneValid = false;
        if (row.find('input[type="checkbox"]:checked').size() > 0)
            thisOneValid = true;
        if (! thisOneValid)
            allValid = false;
    });
    return allValid;
}

类名
更改为启用工具来自复选框

function Validate() {
    var flag=0;
    $(grid1.fnGetData()).each(function () {
        if ($(this).find('.enabledbool').is(':checked')) {
            flag++;
        }
    });
    return flag ? true : false;// return here
}

在我看来,您的函数几乎不错。您在每个函数中都犯了一个错误。我将更正此函数以:

function Validate() {
    $(grid1.fnGetData()).each(function () {
        if (this.is(':checkbox :checked')) {
            return true;
        }
    });
    return false;
}

主要的改变是从每个循环中移动return false语句。在您的版本中,此循环将始终只有一次迭代。在我的版本中,它将迭代直到找到选中的复选框。如果没有选中的复选框,则返回false。我头脑中没有编译器,因此对错误表示抱歉。

这对我来说很好-

function Validate() {
    var allOk = true;
    $(grid1).find("tbody tr").each(function () {
        var row = $(this);
        if (row.find($(':checkbox:not(:checked)')).length == 2) {
            allOk = false;
            return allOk;
        }
    });
    return allOk; 
}

您能再详细说明一下吗?我正在讨论,但我认为您正在检查多个选项即使我检查了值,它也会返回false。
if(row.find($('.checkbox:checked')).size()>0
即使选中复选框也为false。我想每行至少有一个查看或修改复选框。我得到Microsoft JScript运行时错误:对象不支持属性或方法“is”在iER中将其替换为$(this),即使我选中了值也返回false可能是选择器$(this)。is(“:checkbox:checked”)是错误的。正如我在回答中所说,我只是向您展示了在每个循环中放置return false的主要错误。请尝试if($(this).is(':checkbox')){if($(this).is(':checked')){return true;}网格/表格是动态绑定的。可能有多行。您的代码在一行中工作正常。但是当有一行具有选中值,而另一行具有未选中值时,您的代码将失败。您有什么解决方案吗?@Sandy我使用了
标志
如果有
多行
具有
选中值或
未选中值s
then
flag
incremented
然后只有它将返回
true
如果未选中复选框,则
flag=0
function
返回false
如果($(this).查找('.enabledbool').is(':checked'))
始终是
false
即使选中了
复选框
function Validate() {
    $(grid1.fnGetData()).each(function () {
        if (this.is(':checkbox :checked')) {
            return true;
        }
    });
    return false;
}
function Validate() {
    var allOk = true;
    $(grid1).find("tbody tr").each(function () {
        var row = $(this);
        if (row.find($(':checkbox:not(:checked)')).length == 2) {
            allOk = false;
            return allOk;
        }
    });
    return allOk; 
}