问题
With reference to http://spotfired.blogspot.in/2014/05/popup-calendar-webplayer-compatible.html. Can you please suggest how to get the current date in the input field as soon as the analysis is open in Webplayer.
HTML Code:
<span id="dt1">
<SpotfireControl id="a8b5b0d725bd41f385c3a859b511ae0b" /></span>
<span id="dt1picker"></span>
JS:
//update document property after selection
function datePicker_onSelect(selectedDate){
//alert(selectedDate)
$("#dt1 input").focus()
$("#dt1 input").blur()
}
//jquery datepicker configuration
//you can comment the buttonImageOnly and buttonImage lines to show a button instead of a calendar or the image of your choice.
pickerOptions = {
showOn: 'button',
buttonImageOnly: true,
buttonImage: 'http://staff.washington.edu/tabrooks/343INFO/UnobtrusiveDatePicker/cal-grey.gif',
minDate: "-36M", maxDate: "+0D",
changeMonth: true,
changeYear: true,
altField:"#dt1 input",
onSelect:datePicker_onSelect
}
//create the date picker
document.getElementById('dt1picker').innerHTML="<input type='hidden' id='datePicker'>"
$("#datePicker").datepicker(pickerOptions);
//--My code to get current date as soon as the analysis is load.
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
$('#dt1').val(today);
回答1:
I do this with a JScript and a Button (which I hide so nobody can see or click it).
JScript:
$(function () {
function executeScript() {
$('#hiddenBtn input').click();
//or- document.getElementById('hiddenBtn').childNodes[0].click();
}
$(document).ready(function(){executeScript()});
});
HTML:
<Span style="display:none" id="hiddenBtn">
<SpotfireControl id="f8322a6109af43fb935ad6e7bcb1f1fc" /></span>
IronPython script on HiddenButton:
from System import DateTime
from Spotfire.Dxp.Data.DataType import Date
if Document.Properties["OpenedYet"] == False:
Document.Properties["udSelectedDate"] = DateTime.Today.ToString("MM/dd/yyyy")
Document.Properties["OpenedYet"] = True
Mind you, this method can be kind of annoying for the developer, because every time you want to save the analytic, you need to go into document properties and switch the Property value of OpenedYet (which I have as a Boolean) from True to False and then you can't click anything else before you hit the save button.
回答2:
Add this code to your query
//create the date picker
document.getElementById('dt1picker').innerHTML="<input type='hidden' id='datePicker'>"
$("#datePicker").datepicker(pickerOptions);
**$("#datePicker").datepicker("setDate", "0d");**
来源:https://stackoverflow.com/questions/33453648/spotfire-current-date-in-input-field-with-calendar-popup