Не следует предпринимать никаких действий после нажатия кнопки "Отправить" (Adobe Livecycle)

Цель этой проблемы - выдать предупреждающее сообщение, если пользователь нажал кнопку отправки без адреса и не предпринял никаких действий, но проблема в том, что кнопка отправки не имеет события щелчка.

Я проверяю поле адреса, если поле адреса имеет какое-то значение, то оно должно приступить к отправке формы, в противном случае должно появиться всплывающее сообщение и не предприниматься никаких действий.

 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.

Также, пожалуйста, скажите мне, если есть какой-либо другой способ вызвать сообщение об ошибке, кроме оповещения приложения.

Заранее спасибо!

2 ответа

Решение

Таким образом, в основном то, что я узнал, у каждой кнопки есть 3 типа управления: регулярный, исполняемый и отправляющий. В типе кнопки submit и execute у нас может быть событие click, так что нам нужно сделать, добавить вторую кнопку с регулярным типом элемента управления и поместить ее поверх первой кнопки с типом элемента управления submit, а при нажатии второй кнопки даже вызвать первую кнопку,

 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");
 }

Я бы сделал это так, я думаю:

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 Обычно это самый быстрый способ, но если вы хотите попробовать разные вещи, я рекомендую прочитать о пользовательских диалогах - например, здесь.
Там также старше xfa версия: MessageBox Docu.

Другие вопросы по тегам