Note that there are some explanatory texts on larger screens.

plurals
  1. POXPages server side validation not working on IE8
    primarykey
    data
    text
    <p>Have a simple "contact us" XPage created.</p> <p>Have server side validation in place that displays errors via 'Display Error' controls. Have button that sends out email when clicked.</p> <p>Functionality works using Firefox 4.0.1, but does not with IE8.</p> <p>Have put the following compatibility code in the beforeRenderResponse event:</p> <pre><code>try { if (context.getUserAgent().isIE(8, 8)) { var exCon = facesContext.getExternalContext(); var response = exCon.getResponse(); response.setHeader("X-UA-Compatible", "IE=EmulateIE7"); } } catch (e) { } </code></pre> <p>Does not seem to help. Any ideas/suggestions?</p> <p>Derek</p> <p>Update:</p> <p>As requested - here's the button code:</p> <pre><code>var doc = database.createDocument(); doc.replaceItemValue("Form", "Memo"); doc.replaceItemValue("Subject", "Contact Us Received"); doc.replaceItemValue("SendTo", "detnyre@mac.com"); doc.replaceItemValue("DisplaySent","detnyre@mac.com"); //Build Body var1 = "The following Contact Us message was received: &lt;br&gt;&lt;br&gt;"; var2 = var1 + "Contact Name: " + document1.getItemValueString("ContactName").valueOf()+ "&lt;br&gt;&lt;br&gt;"; var3 = var2 + "Email Address: " + document1.getItemValueString("ContactEmail").valueOf()+ "&lt;br&gt;&lt;br&gt;"; var4 = var3 + "Phone Number: " + document1.getItemValueString("ContactPhone").valueOf() + "&lt;br&gt;&lt;br&gt;"; var5 = var4 + "Subject: " + document1.getItemValueString("ContactSubject").valueOf() + "&lt;br&gt;&lt;br&gt;"; var6 = var5 + "Message: " + document1.getItemValueString("ContactMessage").valueOf() + "&lt;br&gt;"; body = doc.createMIMEEntity() stream = session.createStream() stream.writeText(var6) body.setContentFromText(stream, "text/html; charset=iso-8859-1", 0) // Send doc.send(); context.redirectToPage("Home") </code></pre> <p>Here's the XML generated:</p> <pre><code>&lt;xp:button value="Email Test" id="button2"&gt; &lt;xp:eventHandler event="onclick" submit="true" refreshMode="complete"&gt; &lt;xp:this.action&gt;&lt;![CDATA[#{javascript:var doc = database.createDocument(); doc.replaceItemValue("Form", "Memo"); doc.replaceItemValue("Subject", "Contact Us Received"); doc.replaceItemValue("SendTo", "detnyre@mac.com"); doc.replaceItemValue("Princial","detnyre@mac.com"); doc.replaceItemValue("ReplyTo","detnyre@mac.com"); doc.replaceItemValue("tmpDisplaySentBy","detnyre@mac.com"); doc.replaceItemValue("DisplaySent","detnyre@mac.com"); doc.replaceItemValue("From","DonahueOnline") //Build Body var1 = "The following Contact Us message was received: &lt;br&gt;&lt;br&gt;"; var2 = var1 + "Contact Name: " + document1.getItemValueString("ContactName").valueOf()+ "&lt;br&gt;&lt;br&gt;"; var3 = var2 + "Email Address: " + document1.getItemValueString("ContactEmail").valueOf()+ "&lt;br&gt;&lt;br&gt;"; var4 = var3 + "Phone Number: " + document1.getItemValueString("ContactPhone").valueOf() + "&lt;br&gt;&lt;br&gt;"; var5 = var4 + "Subject: " + document1.getItemValueString("ContactSubject").valueOf() + "&lt;br&gt;&lt;br&gt;"; var6 = var5 + "Message: " + document1.getItemValueString("ContactMessage").valueOf() + "&lt;br&gt;"; body = doc.createMIMEEntity() stream = session.createStream() stream.writeText(var6) body.setContentFromText(stream, "text/html; charset=iso-8859-1", 0) // Send doc.send(); context.redirectToPage("Home") }]]&gt;&lt;/xp:this.action&gt; &lt;/xp:eventHandler&gt; &lt;/xp:button&gt; </code></pre> <p>Derek</p> <p>============</p> <h1>Update #2</h1> <p>Moved the code from the button to the query save event. Same result - works in Firefox, but not IE8. Assume I have something basic wrong, just can't find it... Here is new source code:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;xp:view xmlns:xp="http://www.ibm.com/xsp/core"&gt; &lt;xp:this.beforeRenderResponse&gt;&lt;![CDATA[#{javascript:try { if (context.getUserAgent().isIE(8, 8)) { var exCon = facesContext.getExternalContext(); var response = exCon.getResponse(); response.setHeader("X-UA-Compatible", "IE=EmulateIE7"); } } catch (e) { }}]]&gt;&lt;/xp:this.beforeRenderResponse&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;xp:this.data&gt; &lt;xp:dominoDocument var="document1" formName="CUF"&gt; &lt;xp:this.querySaveDocument&gt;&lt;![CDATA[#{javascript:var doc = database.createDocument(); doc.replaceItemValue("Form", "Memo"); doc.replaceItemValue("Subject", "Contact Us Received"); doc.replaceItemValue("SendTo", "detnyre@mac.com"); doc.replaceItemValue("Princial","detnyre@mac.com"); doc.replaceItemValue("ReplyTo","detnyre@mac.com"); doc.replaceItemValue("tmpDisplaySentBy","detnyre@mac.com"); doc.replaceItemValue("DisplaySent","detnyre@mac.com"); doc.replaceItemValue("From","DonahueOnline") //Build Body var1 = "The following Contact Us message was received: &lt;br&gt;&lt;br&gt;"; var2 = var1 + "Contact Name: " + document1.getItemValueString("ContactName").valueOf()+ "&lt;br&gt;&lt;br&gt;"; var3 = var2 + "Email Address: " + document1.getItemValueString("ContactEmail").valueOf()+ "&lt;br&gt;&lt;br&gt;"; var4 = var3 + "Phone Number: " + document1.getItemValueString("ContactPhone").valueOf() + "&lt;br&gt;&lt;br&gt;"; var5 = var4 + "Subject: " + document1.getItemValueString("ContactSubject").valueOf() + "&lt;br&gt;&lt;br&gt;"; var6 = var5 + "Message: " + document1.getItemValueString("ContactMessage").valueOf() + "&lt;br&gt;"; body = doc.createMIMEEntity() stream = session.createStream() stream.writeText(var6) body.setContentFromText(stream, "text/html; charset=iso-8859-1", 0) // Send doc.send(); context.redirectToPage("Home") }]]&gt;&lt;/xp:this.querySaveDocument&gt;&lt;/xp:dominoDocument&gt; &lt;/xp:this.data&gt; &lt;xp:table style="margin-top:5.0px;margin-bottom:5.0px;padding-top:5.0px;padding-bottom:5.0px"&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:span style="font-size:16pt"&gt;Contact Us&lt;/xp:span&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt;&lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; * (denotes required field) &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt;&lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="width:400px;font-size:12pt"&gt; Name:* &lt;xp:message id="ContactNameError" for="ContactName" style="color:rgb(255,128,128);font-size:9pt"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactName" value="#{document1.ContactName}" style="width:200px" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Name is required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; Email Address:* &amp;#160; &lt;xp:message id="message1" style="color:rgb(255,0,0);font-size:9pt" for="ContactEmail"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactEmail" style="width:200px" value="#{document1.ContactEmail}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Email Address is Required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt;Phone Number:&lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactPhone" style="width:200px" value="#{document1.ContactPhone}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Phone Number is Required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; Subject:* &amp;#160; &lt;xp:message id="message2" style="color:rgb(255,0,0);font-size:9pt" for="ContactSubject"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactSubject" style="width:300px" value="#{document1.ContactSubject}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Subject is required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; Message:* &amp;#160; &lt;xp:message id="message3" style="color:rgb(255,0,0);font-size:9pt" for="ContactMessage"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputTextarea id="ContactMessage" style="height:250px;width:99%" value="#{document1.ContactMessage}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="A message is required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputTextarea&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;/xp:table&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;xp:button value="Submit" id="button1"&gt;&lt;xp:eventHandler event="onclick" submit="true" refreshMode="complete"&gt; &lt;xp:this.action&gt; &lt;xp:saveDocument var="document1"&gt;&lt;/xp:saveDocument&gt; &lt;/xp:this.action&gt;&lt;/xp:eventHandler&gt;&lt;/xp:button&gt;&lt;/xp:view&gt; </code></pre> <p>==========</p> <h1>UPDATE #3</h1> <p>Tried the suggestions posted. Removed the code that set compatibility mode of IE8. Re-did the button. Included save="false" in the button code. Still works in FireFox, but not with IE8. IE8 displays page, but validation and email code does not run... odd...</p> <p>Here is latest source code:</p> <p> </p> <pre><code>&lt;xp:br&gt;&lt;/xp:br&gt; &lt;xp:this.data&gt; &lt;xp:dominoDocument var="document1" formName="CUF"&gt; &lt;xp:this.querySaveDocument&gt;&lt;![CDATA[#{javascript:var doc = database.createDocument(); </code></pre> <p>doc.replaceItemValue("Form", "Memo"); doc.replaceItemValue("Subject", "Contact Us Received"); doc.replaceItemValue("SendTo", "detnyre@mac.com"); doc.replaceItemValue("Princial","detnyre@mac.com"); doc.replaceItemValue("ReplyTo","detnyre@mac.com"); doc.replaceItemValue("tmpDisplaySentBy","detnyre@mac.com"); doc.replaceItemValue("DisplaySent","detnyre@mac.com"); doc.replaceItemValue("From","DonahueOnline")</p> <p>//Build Body var1 = "The following Contact Us message was received: <br><br>"; var2 = var1 + "Contact Name: " + document1.getItemValueString("ContactName").valueOf()+ "<br><br>"; var3 = var2 + "Email Address: " + document1.getItemValueString("ContactEmail").valueOf()+ "<br><br>"; var4 = var3 + "Phone Number: " + document1.getItemValueString("ContactPhone").valueOf() + "<br><br>"; var5 = var4 + "Subject: " + document1.getItemValueString("ContactSubject").valueOf() + "<br><br>"; var6 = var5 + "Message: " + document1.getItemValueString("ContactMessage").valueOf() + "<br>";</p> <p>body = doc.createMIMEEntity() stream = session.createStream() stream.writeText(var6) body.setContentFromText(stream, "text/html; charset=iso-8859-1", 0)</p> <p>// Send doc.send(); context.redirectToPage("Home")</p> <p>}]]> Contact Us * (denotes required field) Name:* </p> <pre><code> &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactName" value="#{document1.ContactName}" style="width:200px" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Name is required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; Email Address:* &amp;#160; &lt;xp:message id="message1" style="color:rgb(255,0,0);font-size:9pt" for="ContactEmail"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactEmail" style="width:200px" value="#{document1.ContactEmail}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Email Address is Required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt;Phone Number:&lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactPhone" style="width:200px" value="#{document1.ContactPhone}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Phone Number is Required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; Subject:* &amp;#160; &lt;xp:message id="message2" style="color:rgb(255,0,0);font-size:9pt" for="ContactSubject"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputText id="ContactSubject" style="width:300px" value="#{document1.ContactSubject}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="Subject is required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputText&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td style="font-size:12pt"&gt; Message:* &amp;#160; &lt;xp:message id="message3" style="color:rgb(255,0,0);font-size:9pt" for="ContactMessage"&gt; &lt;/xp:message&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;xp:tr&gt; &lt;xp:td&gt; &lt;xp:inputTextarea id="ContactMessage" style="height:250px;width:99%" value="#{document1.ContactMessage}" required="true"&gt; &lt;xp:this.validators&gt; &lt;xp:validateRequired message="A message is required."&gt; &lt;/xp:validateRequired&gt; &lt;/xp:this.validators&gt; &lt;/xp:inputTextarea&gt; &lt;/xp:td&gt; &lt;/xp:tr&gt; &lt;/xp:table&gt; &lt;xp:br&gt;&lt;/xp:br&gt; &lt;xp:button value="Label" id="button1"&gt; &lt;xp:eventHandler event="onclick" submit="true" save="false" refreshMode="complete"&gt; &lt;xp:this.action&gt; &lt;xp:saveDocument var="document1"&gt;&lt;/xp:saveDocument&gt; &lt;/xp:this.action&gt; </code></pre> <p> </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload