点击提交按钮后不应该采取任何行动 (Adobe Livecycle)

Should take no action after hitting submit button (Adobe Livecycle)

这个问题的objective是如果用户点击了没有地址的提交按钮并且没有采取任何行动,会弹出一个警告消息,但问题是提交按钮没有点击事件。

我正在检查一个地址字段,如果地址字段有一些值那么它应该继续提交表单,否则它应该弹出一条消息并且不采取任何行动。

 Form.#pageSet[0].Page1.FOOTER_EN_FRAGMENT.FSSUBMIT_PC::mouseUp - (JavaScript, client)

    var addr1 = HEADER_EN_FRAGMENT.CUSTOMER_ML_ADDRESS_1.rawValue;
    var addr2 = HEADER_EN_FRAGMENT.CUSTOMER_ML_ADDRESS_2.rawValue;

        if(addr1  == null || addr1  == "" || addr2 == null || addr2  == "")
        {
          app.alert("Address field can't be blank!",3); 
          FSSUBMIT_PC.validate = "disable";//need help here
        }

现在只是显示错误信息,但点击按钮时仍然提交。我希望它不采取任何行动,但我不知道如何在 adobe livecycle designer 中执行此操作。

另外请告诉我除了app alert之外还有什么方法可以弹出报错信息

提前致谢!

我会像我想的那样做:

var addr1 = HEADER_EN_FRAGMENT.CUSTOMER_ML_ADDRESS_1;
var addr2 = HEADER_EN_FRAGMENT.CUSTOMER_ML_ADDRESS_2;

if(addr1.isNull || addr2.isNull)
{
    app.alert("Address field can't be blank!",3); 
    xfa.event.cancelAction = 1; //This worked for me for cancelling the print process, maybe it will work for you too!
}

而且我想知道你为什么在 mouseUp 事件中而不是在 click 中这样做。

App.alert 通常是最快的方法,但如果您想尝试不同的东西,我建议您阅读有关自定义对话框的内容 - 例如here.
还有一个较旧的 xfa 版本:MessageBox Docu

所以基本上我学到的每个按钮都有 3 个控制类型常规、执行和提交。在提交和执行按钮类型中,我们可以有点击事件,所以我们需要做的是,添加第二个控件类型为常规的按钮,并将其放在第一个控件类型为提交的按钮上,在第二个按钮中单击甚至调用第一个按钮,

 var addr1 = form1.Page1.HEADER.CUSTOMER_ML_ADDRESS_1.rawValue;
 var addr2 = form1.Page1.HEADER.CUSTOMER_ML_ADDRESS_2.rawValue;

 if(addr1 == null || addr1 == "" || addr2 == null || addr2 == "")
 {
    xfa.host.messageBox("Address field cannot be blank.");  
 }
 else
 {
      FSSUBMIT_PC.execEvent("click");
 }