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