【问题标题】:Insert date into a grid field if empty如果为空,则将日期插入网格字段
【发布时间】:2017-12-11 05:25:50
【问题描述】:

基于 Web 的第三方工作流应用程序。如果该字段为空,则尝试让 javascript 将今天的日期插入到网格日期字段中。

如果我设置以下代码:

function todayDate(){

  var today = new Date();
  var dd = today.getDate();
  var mm = today.getMonth()+1; //January is 0!
  var yyyy = today.getFullYear();

  if (dd<10) { 
    dd='0'+dd
  } 

  if (mm<10) {
    mm='0'+mm
  } 

  today = yyyy+'/'+mm+'/'+dd;
  $("#Travel_ItineraryDetails").setValue(today,1,1);
}
todayDate();

它将日期插入正确的字段。这也会在用户每次打开表单时覆盖日期。

网格名称:Travel_ItineraryDetails

字段名称:日期

字段是网格中的第一个字段,因此在上面的 .setValue 命令中为 1,1。

【问题讨论】:

  • 如何在名为“Travel_ItineraryDetails”的网格中检查名为“日期”的字段?
  • 那么问题出在哪里?你能指望什么?你得到了什么?
  • 我需要一个 if 语句来检查字段是否为空并插入函数中设置的日期,但是我遇到了问题,因为它在网格中。我不确定如何让 if 语句在网格中查看。

标签: javascript jquery date processmaker


【解决方案1】:

在网格中一会儿..

processmaker .. 使用$("#gridId").getValue(row, col)
(可用版本:3.0.1.3 及更高版本。)

Documentation here


没有 processmaker 的变体
function todayDate(){

  var today = new Date();
  var dd = today.getDate();
  var mm = today.getMonth()+1; //January is 0!
  var yyyy = today.getFullYear();

  if (dd<10) { 
    dd='0'+dd
  } 

  if (mm<10) {
    mm='0'+mm
  } 

  today = yyyy+'/'+mm+'/'+dd;
  var elem = document.getElementById("Travel_ItineraryDetails");
  
if( elem.innerHTML =="")  
//  $("#Travel_ItineraryDetails").html(today); with jQuery
elem.innerHTML = today;
}
todayDate();
&lt;div id=Travel_ItineraryDetails&gt;&lt;/div&gt;

function todayDate(){

  var today = new Date();
  var dd = today.getDate();
  var mm = today.getMonth()+1; //January is 0!
  var yyyy = today.getFullYear();

  if (dd<10) { 
    dd='0'+dd
  } 

  if (mm<10) {
    mm='0'+mm
  } 

  today = yyyy+'/'+mm+'/'+dd;
  var elem = document.getElementById("Travel_ItineraryDetails").rows[0].cells[0];
  
if( elem.innerHTML =="")  
//  $("#Travel_ItineraryDetails").html(today); with jQuery
elem.innerHTML = today;
}
todayDate();
<table id="Travel_ItineraryDetails">
    <tr class="row">
        <td class="cell"></td>
        <td class="cell">2</td>
    </tr>
    <tr class="row">
        <td class="cell">3</td>
        <td class="cell">4</td>
    </tr>
</table>

【讨论】:

    【解决方案2】:

    在 ProcessMaker 中有两种方法,一种是使用 Trigger,另一种是编写 Javascript。

    Akubik 的回答很好,但如果你想触发,你只需要在 PHP 代码中使用它,如下所示:

    $date_field = @@date_field;
    //it is my hobby to store processmaker variables in a PHP variables
    if(!empty($date_field))
    {
       @@date_field =  date("Y/m/d"); 
       //i force PM variable to use the date for today
      //by default processmaker is using YYYY-MM-DD
    } 
    

    将其放在触发器中并将该触发器放在 Dynaform 之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-01
      • 2017-04-13
      • 2012-02-28
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多