Вставьте дату в поле сетки, если она пуста

Стороннее веб-приложение для документооборота. Попытка получить 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

Название поля: дата

Поле - это первое поле в сетке, следовательно, 1,1 в команде.setValue выше.

2 ответа

Есть два способа сделать это в ProcessMaker: один с помощью Trigger, а другой с помощью написания Javascript.

Ответ Акубика хороший, но если вы хотите триггер, вам просто нужно использовать его в 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.

В сетке один момент..

и с processmaker.. использовать $("#gridId").getValue(row, col)
(Доступная версия: 3.0.1.3 и позже.)

Документация здесь


вариант без 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();
<div id=Travel_ItineraryDetails></div>

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>

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