Я проверки достоверности TextBox с CustomValidator и JavaScript, передавая ему некоторые: СчетчикиCustomValidator с параметрами
<asp:CustomValidator ID="CustomValidator1" runat="server" SetFocusOnError="true" Display="Dynamic" ValidateEmptyText="true" ControlToValidate="tbFirstName" ClientValidationFunction="CVH.createFunction(notEmpty, 'tbFirstName','tbFirstNameRequired')"></asp:CustomValidator>
Это мой 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.
Проблема в том, что когда я ввожу данные в TextBox и код выполняется, я все равно получаю не значение. Как и в textBoxId.Value равно NULL, даже с данными в поле.
Texbox установлен в Static:
<asp:TextBox ID="tbFirstName" runat="server" class="form-control" autocomplete="name" MaxLength="20" ClientIDMode="Static" />
И это правильно делает: <input name="ctl00$MainContent$tbFirstName" type="text" maxlength="20" id="tbFirstName" class="form-control" autocomplete="name" />
Любые предложения о том, почему он не может читать данные в TextBox?
Добавьте атрибут «имя» в тег ввода с именем, которое вы хотите использовать в своей полезной нагрузке. – theWanderer4865
@ theWanderer4865 Вы имеете в виду добавить name = "whatever", а затем использовать getElementByName или что-то еще? – Diomedes
По существу, вы передаете правильное значение как 'tbID', но' getElementById'-call возвращает null? Какова ценность 'textBoxId'? это уникальный идентификатор на странице? –