Не следует предпринимать никаких действий после нажатия кнопки "Отправить" (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.