问题
The following save button code works well on mobile xpage:
var checkBox31:com.ibm.xsp.component.xp.XspInputCheckbox = getComponent("checkBox31");
var customerID1:com.ibm.xsp.component.xp.XspInputText = getComponent("customerID1");
var a = checkBox31.getValue();
var b = customerID1.getValue()
if (a == "" || a == null){
if (b == ""){
sessionScope.put("ITDialog","You must enter Customer ID");
var dialog1:com.ibm.xsp.extlib.component.dialog.UIDialog = getComponent("dialog1");
dialog1.show();
}
}
But it does not work on web xpage. I'm using 8.5.3FP6. I used 8.5.3FP1 and 8.5.3FP5 bu had same issue.
Thanks in advance for any help.
Here is sample of code which is not working.
]]></xp:this.script>
</xp:executeClientScript>
</xp:this.script>
</xp:eventHandler>
</xp:button>
 
</xp:panel>
</xe:dialog>
</xp:panel>
<xp:table>
<xp:tr>
<xp:td style="background-color:rgb(226,226,226)">
<xp:label
value="Company:"
id="company_Label1"
for="company1">
</xp:label>
</xp:td>
<xp:td>
<xp:inputText
value="#{document1.Company}"
id="company1">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td style="background-color:rgb(226,226,226)">
<xp:label
value="Address:"
id="address_Label1"
for="address1">
</xp:label>
</xp:td>
<xp:td>
<xp:inputText
value="#{document1.Address}"
id="address1">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td style="background-color:rgb(226,226,226)">
<xp:label
value="Contact person:"
id="contactPerson_Label1"
for="contactPerson1">
</xp:label>
</xp:td>
<xp:td>
<xp:inputText
value="#{document1.ContactPerson}"
id="contactPerson1">
</xp:inputText>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
</xp:view>
回答1:
A checkbox has a value of either 'false' or 'true' (indicating it is 'deselected' & 'selected'), it shouldn't return a value of "" or null. Therefore, the first if statement is never true, and your dialog will never appear.
I believe what you want is that if the checkbox is unselected, there must be a customer ID entered in the input. If so, I think this is the code you want:
var checkBox31:com.ibm.xsp.component.xp.XspInputCheckbox = getComponent("checkBox31");
var customerID1:com.ibm.xsp.component.xp.XspInputText = getComponent("customerID1");
var a = checkBox31.getValue();
var b = customerID1.getValue();
if (a == "false") {
if (b == "") {
sessionScope.put("ITDialog","You must enter Customer ID");
var dialog1:com.ibm.xsp.extlib.component.dialog.UIDialog = getComponent("dialog1");
dialog1.show();
}
}
来源:https://stackoverflow.com/questions/22771215/save-button-using-ssjs-does-not-open-xedialog-in-web-xpage-but-works-on-mobile