用户单击“立即服务”中的表单按钮后验证字段

时间:2014-03-03 21:50:08

标签: javascript user-interface workflow change-management servicenow

我正在处理一个带有两个表单按钮的更改单表单,即“提交”和“请求批准”。提交是一种在表格中插入记录的方式。但是,当用户按下“请求批准”时,票证才会向前移动。

我想仅在用户点击“请求批准”时强加某些限制。通过限制,我的意思是提示用户填写计划开始日期,结束日期。但是,当用户点击“提交”时,不会显示此类消息。

这样做的一种方法是通过UI动作为可见性设置条件。但我希望按钮始终可见。请帮忙

1 个答案:

答案 0 :(得分:2)

您可以将请求批准UI操作设置为在客户端上运行(客户端复选框),将Onclick字段设置为requestApproval();然后使用以下代码作为脚本正文的指南。这允许您的UI操作分两个阶段运行。在验证逻辑成功的客户端上,您可以在其中编写验证逻辑,并在服务器上(由gsftSubmit触发)。

默认情况下,系统中有一些使用此类代码的UI操作。搜索UI操作,其中"脚本包含gsftSubmit"看其他例子。

function requestApproval(){
   // Do your client side validation here 

   if (g_form.getValue('comments') == '') {
      return false;  //Abort submission if your validation fails
   }

   //Call the UI Action and skip the 'onclick' function
   gsftSubmit(null, g_form.getFormElement(), 'request_approval'); 
   // MUST call the 'Action name' set in this UI Action. 
   // Make sure this name doesn't conflict with an existing 
   // UI Action if this is a custom action. 
}

//Code that runs without 'onclick'
//Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
   serverResolve();

function serverResolve(){
   change_request.state = 1; 
   // other server side actions you wish to take 
}