单击下一步按钮时如何显示消息?

How to show Message when Next button clicked?

我创建了自定义页面并想知道如何在单击“下一步”按钮时检查我的输入是否为空。
流程是:
1.设置输入值
2.点击下一步
3.如果为空则显示"Error, empty. set all the inputs"

我试过使用 nsDialog onChange 和 onClick 但没能得到这个

Function lprConfigServerUserXml
nsDialogs::Create 1018
Pop [=12=]
GetFunctionAddress [=13=] OnClick
nsDialogs::OnClick [=14=]

${NSD_CreateLabel} 0 5u 75% 10u "* Server Address "
Pop [=12=]
${NSD_CreateText} 0 15u 100% 12u ""
Pop $SERVER_ADDRESS
${NSD_OnChange} $SERVER_ADDRESS setSeverValue
${NSD_CreateLabel} 0 35u 75% 10u "* User Name "
Pop [=12=]
${NSD_CreateText} 0 45u 100% 12u ""
Pop $USER_NAME
${NSD_OnChange} $USER_NAME setUserValue
${NSD_CreateLabel} 0 65u 75% 10u "* 密码 "<br/> 弹出 $0<br/> ${NSD_CreateText} 0 75u 100% 12u ""<br/> Pop $PASSWORD<br/> ${NSD_OnChange} $PASSWORD setPasswordValue<br/> nsDialogs::Show<br/> FunctionEnd`

Function OnClick
Pop [=33=] # HWND
MessageBox MB_OK "Error, empty. Set all inputs"
FunctionEnd

到目前为止还没有结果:(

页面离开回调函数在用户点击下一步按钮时被调用。您可以调用 Abort 以防止用户在该回调中移动到下一页。

!include nsDialogs.nsh
!include LogicLib.nsh

Page Custom MyCustomPageCreate MyCustomPageLeave
Page Directory
Page InstFiles

Var NameCtrl
Var NameString

Function MyCustomPageCreate
nsDialogs::Create 1018
Pop [=10=]
${NSD_CreateLabel} 0 0 100% 12u "Name:"
Pop [=10=]
${NSD_CreateText} 0 13u 100% 12u "$NameString"
Pop $NameCtrl
nsDialogs::Show
FunctionEnd

Function MyCustomPageLeave
${NSD_GetText} $NameCtrl $NameString
${If} $NameString == ""
    MessageBox MB_ICONSTOP "You must provide a name!"
    Abort
${EndIf}
FunctionEnd

Section
; TODO: Write $NameString to config file
SectionEnd