Javascript 带参数的CustomValidator
我正在使用CustomValidator和JavaScript验证文本框,并向其传递一些参数: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
这是我的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,它在页面中是唯一的。