У меня есть XPage, который разделен на несколько панелей содержимого Dojo. Я использую клиентский JavaScript, чтобы решить, какая панель содержимого Dojo будет отображаться. Теперь я хочу добавить в XPage проверку нескольких обязательных полей. Однако для проверки как на стороне клиента, так и на стороне сервера сохранение документа запрещено, но если поле, требующее проверки, находится на панели содержимого Dojo, отличной от панели содержимого Dojo, отображаемой в данный момент, пользователь не может увидеть ошибку на стороне сервера. сообщение, и курсор не помещается в поле, которое не прошло проверку (сообщение на стороне клиента видно, но снова курсор не помещается в поле, которое не прошло проверку). Есть ли способ добавить код CSJS, который будет выполняться, когда поле не проходит проверку? (в идеале я хотел бы использовать только проверку на стороне сервера)
Вот поле, требующее проверки
<xp:inputText id="FirstName" value="#{document1.FirstName}" required="true">
<xp:this.validators>
<xp:validateRequired>
<xp:this.message><![CDATA["REQUIRED"]]></xp:this.message>
</xp:validateRequired>
<xp:validateLength minimum="5" maximum="10">
<xp:this.message><![CDATA["VALIDATE"]]></xp:this.message>
</xp:validateLength>
</xp:this.validators>
</xp:inputText>
Вот код для панели содержимого Dojo
<xe:djContentPane id="Employee">
Здесь код CSJS для отображения или скрытия панели содержимого Dojo
var Allgemein = dojo.byId("#{id:Allgemein}");
if (sectionDisplay == "Allgemein") {
dojo.style(Allgemein, "display", "block");
} else {
dojo.style(Allgemein, "display", "none");
}
var sectionDisplay = dojo.cookie("sectionDisplay");
<xp:inputText id="FirstName" value="#{document1.FirstName}" required="true"> <xp:this.validators> <xp:validateRequired> <xp:this.message><![CDATA["REQUIRED"]]></xp:this.message> </xp:validateRequired> <xp:validateLength minimum="5" maximum="10"> <xp:this.message><![CDATA["VALIDATE"]]></xp:this.message> </xp:validateLength> </xp:this.validators> </xp:inputText>
здесь код для панели содержимого dojo<xe:djContentPane id="Employee">
- person   schedule 22.07.2013var Allgemein = dojo.byId("#{id:Allgemein}"); if (sectionDisplay == "Allgemein") { dojo.style(Allgemein, "display", "block");} else { dojo.style(Allgemein, "display", "none"); } var sectionDisplay = dojo.cookie("sectionDisplay");
- person   schedule 22.07.2013