how to parse the html input variable into jelly evaluate
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-22-2016 04:21 PM
I pasted piece of HTML UI page script below. My requirement to dyanmically change the Due date(project_due_date) according to months selected . The due date should to be equal to current + months(selection). I am trying to perform this basic calculation using g:evaluate and assign the result jvar_ variable to date field.
But I am having difficulty in parsing the number months (due_months) selected into the jelly evaluate.
Also if you can help in changing date field as display only woudld be great full .i have tried many option like disabled="disabled" .Noting seems to work.Jelly is wierd and crazy to work with.
any help is highly appreciated.
<tr id="description_row" valign="top">
<td>
Due date
</td>
<td>
<span class="mandatory" width="2px">&amp;nbsp;</span>
<select name="due_months" id="due_months" >
<option value="0">Select</option>
<option value="3">3 months</option>
<option value="6">6 months</option>
<option value="12">1 year</option>
</select>
<g:evaluate var ="jvar_due_date" objects="true" jelly ="true">
var today = new GlideDateTime();
today =gs.nowDateTime();
today.addMonths(${due_months});
</g:evaluate>
<span width="2px">&amp;nbsp;</span>
<g:ui_date id="project_due_date" name="project_due_date" value="$[jvar_due_date]" />
</td>
</tr>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-25-2016 10:23 AM
Hi Hemashekar,
You will almost certainly want to make sure the due_months variable has been cast as an integer. Out of curiosity, where is your due_months coming from / being set as a variable?
I'm guessing you also want to pass back the "today" value to jvar_due_date - don't forget to pass it back out at the end of the evaluate:
<g:evaluate var ="jvar_due_date" objects="true" jelly ="true">
var today = new GlideDateTime();
today =gs.nowDateTime();
today.addMonths(parseInt(${due_months}));
today
</g:evaluate>
Let me know how you get on!
Alex
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-25-2016 11:57 AM
Hi Alex,
Thanks for your reply.
due_months will be passed from the drop down selection option just above the evaluate in the html.
<select name="due_months" id="due_months" >
<option value="0">Select</option>
<option value="3">3 months</option>
<option value="6">6 months</option>
<option value="12">1 year</option>
</select>
parseInt() does here?
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-25-2016 12:04 PM
Hi Hemashekar,
parseInt() forces javascript to interpret the value you are pulling from the drop down as a number - right now he thinks it's a string. The addMonths function is expecting a numeric value, not a string. Link to API reference
Alex
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-25-2016 02:33 PM
Thanks Alex for your response. Do you think the will dynamically change the value of the project_start_date every time I select the month option.
Or writing javascript just for this operation is good way??