繁体   English   中英

在输入框内按下键

[英]press key inside an input box

我正在填写登录表单

     document.getElementById('i0116').value = email;
     document.getElementById('i0118').value = password;
     document.getElementById('idSIButton9').click();

现在,当表单识别出该值未被任何关键事件填充时,问题就开始了,我的意思是即使我填写了表单并在提交时它说字段为空,占位符仍然存在。

我试图通过在填充值之前在输入框上触发按键事件来修复它。 但我做不到。 我试过 :

var target = document.getElementById('email');
var evt = document.createEvent("Events");

evt.initEvent("keypress", true, true);

evt.view = window;
evt.altKey = false;
evt.ctrlKey = false;
evt.shiftKey = false;
evt.metaKey = false;
evt.keyCode = 0;
evt.charCode = 'a';

target.dispatchEvent(evt);

也不是“事件”,我尝试了“UIEVENTS”“KEYEVENTS” ,它们都没有帮助,我使用的是chrome浏览器。

刚刚掌握了您真正想要实现的目标。 您可以清除占位符值onClick()并使用onBlur()恢复占位符值,如下所示

 function clearPlaceholder(id){ document.getElementById(id).placeholder = ""; }; function restorePlaceHolder(id, placeHolderText){ document.getElementById(id).placeholder = placeHolderText; };
 <input id="10116" placeholder="email" onClick="clearPlaceholder('10116')" onBlur="restorePlaceHolder('10116','email')"> <input id="10118" placeholder="password" onClick="clearPlaceholder('10118')" onBlur="restorePlaceHolder('10118','password')">

这就是你要找的吗?

我的问题已解决使用:

var element = document.getElementById('idTxtBx_SAOTCC_OTC');    
var evt = document.createEvent("HTMLEvents");
        evt.initEvent("change", false, true);
        element.dispatchEvent(evt);

这是淘汰赛 js,因为它只是设置元素的值不起作用。所以我试图按键。 chanage 事件为knockoutjs 触发“textInput”,而不是仅仅设置.value 属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM