Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript创建元素,然后分配onclick调用pikadate_Javascript_Html_Function_Dynamic_Onclick - Fatal编程技术网

使用Javascript创建元素,然后分配onclick调用pikadate

使用Javascript创建元素,然后分配onclick调用pikadate,javascript,html,function,dynamic,onclick,Javascript,Html,Function,Dynamic,Onclick,第一次海报,长时间搜寻。我有一个我正在开发的系统,我想用pikaday.js来帮助用户选择日期,而不是手工输入 过程: 从下拉(HTML)元素中,调用handleSelection(choice)。handleSelection然后查看所选的选项,并创建一个输入或第二个包含选项的select元素。对于其中两个选项,我想创建一个输入,并添加一个onclick来kick pikadate…我得到的只是一个输入字段,单击时不调用函数,我可以以正确的格式键入日期,并得到一个结果,这样post部分就可以工

第一次海报,长时间搜寻。我有一个我正在开发的系统,我想用pikaday.js来帮助用户选择日期,而不是手工输入

过程: 从下拉(HTML)元素中,调用handleSelection(choice)。handleSelection然后查看所选的选项,并创建一个输入或第二个包含选项的select元素。对于其中两个选项,我想创建一个输入,并添加一个onclick来kick pikadate…我得到的只是一个输入字段,单击时不调用函数,我可以以正确的格式键入日期,并得到一个结果,这样post部分就可以工作了

见以下代码:

JavaScript保护:

<script src='moment.js></script> <----used for date format only
<script src='pikaday.js></script>
<script>
 function handleSelection(choice)
{
     if(choice=='ordnum' || choice=='po' || choice=='serial' || choice=='asset') <----Works as intended
     {
       var a=document.getElementById('input');
       var input=document.createElement('input');
       input.type='text';
       input.name='value';
       a.appendChild(input);
     }
      if(choice=='varified')<----Works as intended
    {
            var a=document.getElementById('valid');
            var valid=document.createElement('select');
            valid.name='value';
            valid.innerHTML="<option value='y'>Validated</option><option value='n'>Not Validated</option>";
            a.appendChild(valid);
    }
    if(choice=='loc')<----Works as intended
    {
            var a=document.getElementById('valid');
            var valid=document.createElement('select');
            valid.name='value';
            valid.innerHTML="<option value='loc0'>loc0</option><option value='loc1'>loc1</option><option value='loc2'>loc2</options><option value='loc3'>loc3</option><option value='loc4'>loc4</option><option value=';loc5'>loc5</option>";
            a.appendChild(valid);
    }

     if(choice=='drcv' || choice=='disrv') <---Isn't working as intended!
     {
        var a=document.getElementById('input');
        var input=document.createElement('input');
        input.type='text';
        input.name='value';
        input.id='pkr';
        input.onclick='getDate()'; <----Tried with quotes and with out, will not call out to getDate()
        a.appendChild(input);
     }
}
<script>
    function getDate()
    {
       var picker = new Pikaday({field:docuemnt.getElementById('pkr'),format:'YYYYMMDD'});
</script>
     }
}
</script>

函数句柄选择(选项)
{
如果(选项=='ordnum'| |选项=='po'| |选项=='serial'| |选项=='asset')替换

input.onclick='getDate()';

您也可以使用
input.onclick=getDate;
,但addEventListener是添加事件侦听器的首选方法

并确保
getDate
函数在范围内,这意味着它要么与事件侦听器位于同一个脚本标记内,要么位于包含事件侦听器的脚本标记之上。

提升并不能帮助跨越脚本标签。

所以玩一点,似乎风格是个问题。我在我的原始CSS中设置了一个div样式,而pikaday.CSS中的div似乎偏离了那个位置,导致了拉伸效果。我将pickaday.CSS中div的百分比调整为55%,现在已经完全达到了预期的效果NTD.

谢谢,它会显示选择器,但以一种奇怪的方式,选择器的功能是空的,它不会在输入字段中输入所选日期。这听起来好像与插件有关,我无法回答。请尝试在JSFIDLE中设置一个示例,缩小问题范围,并询问一个新问题特别是关于插件,也许有人知道它,可以帮助你。
input.onclick='getDate()';
input.addEventListener('click', getDate, false);