找回密码
 加入
搜索
查看: 2043|回复: 1

[IE类操作] 网页中的一个日期INPUT输入框无法直接通过DOM赋值[已解决]

[复制链接]
发表于 2016-12-1 09:05:18 | 显示全部楼层 |阅读模式
本帖最后由 仙乃日 于 2016-12-1 10:50 编辑
<INPUT class=text style="IME-MODE: disabled" maxLength=10 name=sfrq00 mask="date" jQuery1480553406092="250">
网页代码如上。
手工点击后,会跳出一个日历控件,让用户选择。但是直接通过操作DOM来赋值就不成。
试过改写代码也不成。
$Ele = _IEGetObjByName($oIE, "sfrq00")
$sHTML = '<<INPUT class=text style="IME-MODE: disabled" maxLength=10 value=2016-11-26 name=sfrq00>'
$Ele.innerHTML = $sHTML
当然直接$Ele.Value = "2016-11-26" 也不成。
加上$Ele.fireEvent("OnChange")还是不成。
------------------
晕死!原来是DOM元素重名了。操作这个网页还发现一个怪异的事情。
$Ele = _IEGetObjByName($oIE3, "ettz00",0)
Local $tz = 4.5 + Random(-3, 4, 1) / 10
$Ele.Value =$tz
使用_IEGetObjByName会有问题,匹配到的DOM元素是"ttz00"
Local $oInputs = _IETagNameGetCollection($oIE3, "input")
For $oInput In $oInputs
        If $oInput.Name = "ettz00" Then
                Local $tz = 4.5 + Random(-3, 4, 1) / 10
                $oInput.focus()
                $oInput.click()
                $oInput.Value = $tz
                $oInput.blur()
                MsgBox(0, @error, $oInput.outerhtml)
                ExitLoop
        EndIf
Next
而使用_IETagNameGetCollection就能正确地找到 "ettz00"元素。
发表于 2016-12-1 16:23:51 | 显示全部楼层
学习了,收藏
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 20:26 , Processed in 0.069578 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表