函数参考


_IEFormElementSetValue

设置指定表单元素的值.

#include <IE.au3>
_IEFormElementSetValue ( ByRef $o_object, $s_newvalue [, $f_fireEvent = 1] )

参数

$o_object InternetExplorer.Application, 表单元素对象的对象变量
$s_newvalue 设置到表单元素的新值
$f_fireEvent [可选参数]: 指定是否在改变值后激活 OnChange 和 OnClick 事件
0 = 设置值后不激活 OnChange 或 OnClick 事件
1 = (默认)设置值后激活 OnChange 或 OnClick 事件

返回值

成功: 返回 1
失败: 返回 0 并且设置 @ERROR
@Error: 0 ($_IEStatus_Success) = 无错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
@Extended: 包含无效参数的数量

注意/说明

当所有表单元素具有一个值时, 只有面向元素的文本以一种明显的方式(打印文本, 文本区, 隐藏, 密码和文件)使用自己的值属性. 其他表单元素的值不会影响用户界面中被显示的值, 更确切的说是当该元素被选取或激活时由元素返回的值.

参见_IEFormElementOptionSelect, _IEFormElementCheckboxSelect, _IEFormElementRadioSelect和_IEFormImageClick以获取更多信息.

说明: 不能使用_IEFormElementSetValue设置INPUT TYPE=FILE元素的值. 浏览器安全限制阻止该元素脚本化. 参见下面的示例.

相关

_IEFormElementGetValue, _IEFormElementGetCollection, _IEFormElementGetObjByName, _IEFormElementOptionSelect, _IEFormElementCheckboxSelect, _IEFormElementRadioSelect

示例/演示


; *******************************************************
; 示例 1 - 打开含表单示例的浏览器, 设置文本表单元素的值
; *******************************************************

#include <IE.au3>

Local $oIE = _IE_Example("form")
Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oText = _IEFormElementGetObjByName($oForm, "textExample")
_IEFormElementSetValue($oText, "Hey! This works!")

; *******************************************************
; 示例 2 - 获取到指定表单元素的引用并设置它的值.
;               这里, 提交查询到谷歌搜索引擎
; *******************************************************

#include <IE.au3>

$oIE = _IECreate("http://www.google.com")
$oForm = _IEFormGetObjByName($oIE, "f")
Local $oQuery = _IEFormElementGetObjByName($oForm, "q")
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm)

; *******************************************************
; Example 3 - Set the value of an INPUT TYPE=TEXT element using Send()
; *******************************************************

#include <IE.au3>

$oIE = _IE_Example("form")
$oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oInputFile = _IEFormElementGetObjByName($oForm, "textExample")

; 把输入焦点定位到这个字段然后发送文本字符串
_IEAction($oInputFile, "focus")

; Select existing content so it will be overwritten.
_IEAction($oInputFile, "selectall")

Send("This works")

; *******************************************************
; 示例 4 - 设置 INPUT TYPE=TEXT 元素的值
;               (由于安全限制而阻止使用 _IEFormElementSetValue)
; *******************************************************
;
#include <IE.au3>

$oIE = _IE_Example("form")

; 隐藏浏览器窗口来演示发送文本到不可见窗口
_IEAction($oIE, "invisible")

$oForm = _IEFormGetObjByName($oIE, "ExampleForm")
$oInputFile = _IEFormElementGetObjByName($oForm, "textExample")

; 把输入焦点定位到这个字段然后发送文本字符串
_IEAction($oInputFile, "focus")

; Select existing content so it will be overwritten.
_IEAction($oInputFile, "selectall")

; Get a handle to the IE window.
Local $hIE = _IEPropertyGet($oIE, "hwnd")
ControlSend($hIE, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "This works")

MsgBox(4096, "Success", "Value set to 'This works'")
_IEAction($oIE, "visible")