»спользование селектора даты Javascript в опросе Qualtrics - введите дату в поле опроса

я пытаюсь ввести средство выбора даты, чтобы респондент-респондент мог ввести дату, щелкнув по полю, по¤витс¤ календарь, они могут выбрать дату, а дата будет введена в текстовое поле Ђ¬опросї.

” Qualtrics есть свой собственный инструмент календар¤, но проблема в том, что календарь всегда виден. я хочу, чтобы календарь был видимым, когда они либо нажимают на текстовое поле, либо на значок календар¤ (либо все будет хорошо). ¬от код Qualtrics:

    Enter a date:
<link href="https://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/calendar/assets/skins/sam/calendar.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/calendar/calendar-min.js"></script> <script>
Qualtrics.SurveyEngine.addOnload(function ()
{
  var qid = this.questionId;
  var calid = qid + '_cal';
  var y = QBuilder('div');
  $(y).setStyle({clear:'both'});
  var d = QBuilder('div',{className:'yui-skin-sam'},[
    QBuilder('div', {id:calid}),
    y
  ]);

  var c = this.questionContainer;
  c = $(c).down('.QuestionText');
  c.appendChild(d);
  var cal1 = new YAHOO.widget.Calendar(calid); 
  cal1.render(); 
  var input = $('QR~' + qid);
  $(input).setStyle({marginTop: '20px',width: '150px'});
  var p =$(input).up();
  var x = QBuilder('div');
  $(x).setStyle({clear:'both'});
  p.insert(x,{position:'before'});
    cal1.selectEvent.subscribe(function(e,dates){
    var date = dates[0][0];
    if (date[1] < 10)
        date[1] = '0' + date[1];
    if (date[2] < 10)
        date[2] = '0' + date[2];
    input.value = date[1] +'-'+date[2]+'-'+date[0];
  })
});
</script>

¬от инструмент календар¤, который ¤ хотел бы использовать, но ¤ не могу пон¤ть, как получить дату дл¤ подачи в текстовое поле пол¤ Qualtrics.

<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#datepicker" ).datepicker();
  } );
  </script>
</head>
<body>

<p>Date: <input type="text" id="datepicker"></p>


</body>
</html>

javascript,html,calendar,survey,qualtrics,

1

Ответов: 2


1 прин¤т

¬аша проблема в том, что в Qualtrics $ ссылаютс¤ на prototypejs, а не на jQuery. »так, вам нужно сделать что-то вроде:

$j = jQuery.noconflict();
$j( function() {
    $j( "#datepicker" ).datepicker();
} );

“ем не менее, это может не сработать, если сам код datepicker использует $ дл¤ ссылки на jQuery.

я успешно использовал https://github.com/joshsalverda/datepickr с Qualtrics.

EDIT: дл¤ реализации datepickr в Quatrics:

  1. ƒобавьте сценарий datepickr в заголовок Qualtrics (вы можете загрузить файл в Qualtrics, затем получить URL-адрес файла дл¤ добавлени¤ в заголовок в теге скрипта)
  2. ƒобавить datepickr CSS в пользовательский CSS-интерфейс Qualtrics
  3. ƒобавьте JavaScript в свой вопрос, чтобы добавить datepickr в элемент ввода (например, datepickr ($ (this.questionId) .down ('. InputText')), {dateFormat: 'm / d / Y'});

0

ƒобавьте этот JavaScript в поле, чтобы использовать простой ввод даты в формате HTML (не требуетс¤ jQuery).

Qualtrics.SurveyEngine.addOnload(function() {
    var textInputs = this.questionContainer.querySelectorAll('input[type="text"]');
    if (typeof textInputs[0] !== 'undefined') {
        textInputs[0].type = 'date';
    }
});
JavaScript, HTML, календарь, обзор, qualtrics,
Похожие вопросы