Проверка во время выполнения
У меня есть панель на веб-странице asp.net, и я создаю флажок во время выполнения. Я хочу проверить флажок, обязательное поле проверки при отправке формы.
вот мой код:
cv = новый CustomValidator();
cv.ID = "cv" + "_" + dt.Rows[0]["RefQueID"].ToString();
cv.ValidationGroup = "grp";
cv.Display = ValidatorDisplay.None;
cv.ErrorMessage = "- Question " + intQuestionNo.ToString();
cv.ClientValidationFunction = "chkCount";
cv.Attributes.Add("rfvid", cv.ID.ToString());
//this portion of code is for custom validation javascript function
StringBuilder sb = new StringBuilder();
sb.Append("<script type='text/javascript'> function chkCount(sender,args) { ");
sb.Append(" args.IsValid = GetChk(document.getElementById('ctl00_ContentPlaceHolder1_" + cbl.ID.ToString() + "'))");
sb.Append(" } </script>");
Page page = HttpContext.Current.Handler as Page;
page.RegisterStartupScript("_Check", sb.ToString());
и в моей функции JavaScript я возвращаю это:
function GetChk (chkbox, args) {
if (!isConfirmed) {
alert('hi');
var chkBoxList = document.getElementById(chkbox.ClientID);
var chkBoxCount = chkBoxList.getElementsByTagName("input");
for (var i = 0; i < chkBoxCount.length; i++) {
if (chkBoxCount[i].checked == true) {
return true;
}
}
return false;
}
return true;
}
но я не получаю значение флажка...
Обязательное значение:= ctl00_ContentPlaceHolder1_tc_hospital_improvement_features_tp_Reflection_cbl_116_0
Фактическое значение:= ctl00_ContentPlaceHolder1_tc_hospital_improvement_features_tp_complete_stage_chk_confirm
Пожалуйста, помогите...
1 ответ
Сначала получите сгенерированный во время выполнения элемент управления в файл codebehind из файла класса. а затем, во-вторых, после получения свойства control мы можем проверить список checbox.
Получить элемент управления в файл codebehind из файла класса.
CheckBoxList cbl = (CheckBoxList)pnlref.FindControl("cbl_116");
обеспечить проверку javascript в списке сгенерированных флажков во время выполнения.
function GetChk(chkbox, args) { if (!isConfirmed) { var chkBoxList = document.getElementById('ctl00_ContentPlaceHolder1_tc_hospital_improvement_features_tp_Reflection_cbl_116'); var chkBoxCount = chkBoxList.getElementsByTagName("input"); for (var i = 0; i < chkBoxCount.length; i++) { if (chkBoxCount[i].checked == true) { return true; } } return false; } return true; }