Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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 带参数的CustomValidator_Javascript_C#_Validation_Parameters_Customvalidator - Fatal编程技术网

Javascript 带参数的CustomValidator

Javascript 带参数的CustomValidator,javascript,c#,validation,parameters,customvalidator,Javascript,C#,Validation,Parameters,Customvalidator,我正在使用CustomValidator和JavaScript验证文本框,并向其传递一些参数: 这是我的JavaScript var CVH = { createFunction: function (validationFunction, extParamOne, extParamTwo) { var originalFunction = validationFunction; var extOne = extParamOne; var

我正在使用CustomValidator和JavaScript验证文本框,并向其传递一些参数:

这是我的JavaScript

var CVH = {
    createFunction: function (validationFunction, extParamOne, extParamTwo) {
        var originalFunction = validationFunction;
        var extOne = extParamOne;
        var extTwo = extParamTwo;

        return function (src, args) {
            return originalFunction(src, args, extOne, extTwo);
        }
    }
}
var CustomValidatorHelper = CVH;

function notEmpty(source, args, tbID, spID)
{
    var textBoxId = document.getElementById(tbID);
    var spanID = document.getElementById(spID);

    if (textBoxId.Value == null || textBoxId.Value == "") {
        textBoxId.IsValid = false;
        textBoxId.className = "form-control redBorder"
        spanID.className = "redText";
        alert(textBoxId.getAttribute('value'));
    }
    else {
        textBoxId.IsValid = true;
        textBoxId.className = "form-control"
        spanID.className = "";
        alert(textBoxId.getAttribute('value'));
    }
}
因此,notEmpty被正确调用,并接收tbID和spID的值

问题是,当我在文本框中输入数据并执行代码时,我仍然没有得到值。与textBoxId中一样。即使框中有数据,值也为NULL

Texbox设置为静态:

并且它的渲染正确:


关于为什么无法读取文本框中的数据,有什么建议吗?

因此,错误在于尝试直接检查文本框的值,而不是使用参数:

function notEmpty(source, args, tbID, spID)
{
    var textBoxId = document.getElementById(tbID);
    var spanID = document.getElementById(spID);

    if (args.Value == "")
    {
        args.IsValid = false;
        textBoxId.IsValid = false;
        textBoxId.className = "form-control redBorder"
        spanID.className = "redText";
    }
    else
    {
        args.IsValid = true;
        textBoxId.IsValid = true;
        textBoxId.className = "form-control"
        spanID.className = "";
    }
}

因此,除了更改args.value的textbox.value之外,代码仍然是一样的。

在输入标记中添加一个“name”属性,该属性的名称是您希望在请求负载中使用的。@TheLoverter4865您的意思是添加name=“whatever”,然后使用getElementByName或其他什么?因此,本质上,您是以
tbID
的形式传递正确的值,然而,
getElementById
-调用是否返回null?
textBoxId
的值是多少?这个ID在页面上是唯一的吗?@Andreasniedermir好吧,textBoxId是tbID,或者更确切地说是我传递为tbID的任何值。在本例中是tbFirstName,它在页面中是唯一的。