У меня есть скрипт, который включен в мою страницу:
<script runat="server" language="VB" src="../AdditionalField/AdditionalFieldSave.aspx"></script>
edit: неправильный скрипт, я имел в виду этот:
<!-- #include file="../AdditionalField/AdditionalFieldDisplayHTML.aspx" -->
yes, вы можете #include
in Веб-формы, по-видимому!
Внутри этого скрипта я добавляю некоторые значения в список:
If myAdditionalFieldTempReader("Mandatory") Then
MandatoryAdditionalFields.Add("Notes" & additionalFieldFoundCount)
End If
А затем на странице я получаю значения из списка:
jQuery("#YouthEdit").validate({
rules: {
BirthDate: {
required: true,
date: true
},
FirstName: {
required: true,
},
LastName: {
required: true,
}
<%
For Each mf As String In MandatoryAdditionalFields
Response.Write("," & mf & ": {required: true}")
Next
%>
},
messages: {
BirthDate: "Enter a birth date",
FirstName: "Enter a First Name",
LastName: "Enter a Last Name"
},
submitHandler: function(form) {
//form.submit();
document.YouthEdit.submit();
}
});
Моя проблема в том, что когда я получаю значения из списка, список все еще пуст; это еще не было заполнено. Как заставить скрипт запускаться перед самой страницей, чтобы значения присутствовали, когда они мне нужны?
edit: OK, я попробовал это:
<input id="mandatoryAdditionalFieldsHidden" type="hidden" value="" runat="server" />
на странице включения и это:
mandatoryAdditionalFieldsHidden.Value = String.Join(",", MandatoryAdditionalFields)
в функции, вызываемой с Page_Init
на главной странице и
var mandatoryAdditionalFields = jQuery("#mandatoryAdditionalFieldsHidden").val().split(',');
for (field in mandatoryAdditionalFields)
rules.push([field, 'required: true']);
на главной странице JavaScript. И теперь я получаю сообщение об ошибке, в котором говорится, что я не могу вызвать split
для undefined
... почему скрытое поле будет иметь неопределенное значение, когда я задаю его в Page_Init?