Jquery数据标签需要选择两次

时间:2017-02-18 05:46:44

标签: javascript jquery html html-email

感谢您抽出时间来帮助我。 我希望得到帮助的是我的日期选择器。我正在构建一个小型webform,作为电子邮件的模板。因此,我们的想法是填写表单,点击创建,然后使用表单信息填充电子邮件。 但是,我的日期选择器要求我选择日期两次,直到它将正确的日期输出到电子邮件。第一次选择将不会产生任何结果,第三次尝试将导致第二次选择输出,依此类推。

我正在使用Jquery 1.12.4,我的代码如下:

JS:

    $(function(){
        $( "#IncidentDateInput" ).datepicker({
                  dateFormat: 'dd/mm/yy'
            }); 
    });


    function updateMailString() {           
            mailString = '?subject=' + encodeURIComponent($('#subject').val())
                + '&body=Agent Name: ' + encodeURIComponent($('#AgentNameInput').val()) 
                +"%0D%0AMDN: " +encodeURIComponent($('#MDNInput').val())
                +"%0D%0ADevice: " +encodeURIComponent($('#DeviceInput').val())
                +"%0D%0AIssue: " +encodeURIComponent($('#IssueInput').val())
                +"%0D%0ADate: " +encodeURIComponent($('#IncidentDateInput').val());
            var receiver = encodeURIComponent($('#ReceiverInput').val());
            $('#mail-link').attr('href',  'mailto:' + receiver + mailString);
        }


$( "#IncidentDateInput" ).focusout(function() { updateMailString(); });

HTML:

<input type="text" id="IncidentDateInput"  />

任何见解都会很棒,谢谢。

1 个答案:

答案 0 :(得分:3)

尝试使用change代替focusout。使用focusout时,输入仍为空,并调用updateMailString函数。在使用change函数时,在输入(datepicker)更改后,调用updateMailString函数

Fiddle link

$(document).ready(function() {
  $('#IncidentDateInput').datepicker({
    dateFormat: 'dd/mm/yy',
  });
  $("#IncidentDateInput").change(function() {
    updateMailString();
  });
})

function updateMailString() {
  mailString = '?subject=' + encodeURIComponent($('#subject').val()) + "%0D%0ADate: " + encodeURIComponent($('#IncidentDateInput').val());
  var receiver = encodeURIComponent($('#ReceiverInput').val());
  $('#mail-link').attr('href', 'mailto:' + receiver + mailString);
  alert($('#mail-link').attr('href'))
}