ljxu 发表于 2012-5-7 11:27:43

相同ID,name 如何辨别

本帖最后由 ljxu 于 2012-6-19 13:56 编辑

Form: lancfg      Type: hiddenname:lanname[]id:lanname[] value:lan1
Form: lancfg      Type: hiddenname:lanconn_h[]id:lanconn_h[] value:enable
Form: lancfg      Type: textname:lanaddr[]id:lanaddr[] value:192.168.0.1
Form: lancfg      Type: textname:lanmask[]id:lanmask[] value:255.255.255.0
Form: lancfg      Type: checkboxname:lanconnid:lanconn value:enable
Form: lancfg      Type: checkboxname:Lanselect[]id:Lanselect[] value:11
Form: lancfg      Type: hiddenname:lanname[]id:lanname[] value:lan2
Form: lancfg      Type: hiddenname:lanconn_h[]id:lanconn_h[] value:enable
Form: lancfg      Type: textname:lanaddr[]id:lanaddr[] value:192.168.120.1
Form: lancfg      Type: textname:lanmask[]id:lanmask[] value:255.255.255.0

红色标注的的html元素ID及name相同,如何在元素表单填写时区别出来?

For $oInput In $oInputs

        If $oInput.value="lan2" Then $oInput.SetValue("192.168.4.1")
                $Ele = _IEGetObjById($oIE,"lanaddr[]")
_IEFormElementSetValue($Ele,"192.168.4.1")

这么写好像不行?

shqf 发表于 2012-5-7 16:43:55

本帖最后由 shqf 于 2012-5-7 16:49 编辑

name相同的话,可再用value来判断,可你上面name相同的二行,value值都不是lan2啊要,怎么用$oInput.value="lan2"判断呢。如要判断话,要用$oInput.value=="192.168.0.1"

ljxu 发表于 2012-5-7 18:31:19

回复 2# shqf


      这个是我弄错,不好意思!
If $oInput.value="" And $oInput.id="lanaddr[]"Then $oInput.Value="192.168.2.2"
就可以了
但如果出现如下情况:

Form: lancfg      Type: checkboxname:chk_allid:0 value:on
Form: lancfg      Type: checkboxname:Lanselect[]id:Lanselect[] value:11
Form: lancfg      Type: hiddenname:lanname[]id:lanname[] value:lan1
Form: lancfg      Type: hiddenname:lanconn_h[]id:lanconn_h[] value:enable
Form: lancfg      Type: textname:lanaddr[]id:lanaddr[] value:192.168.0.1
Form: lancfg      Type: textname:lanmask[]id:lanmask[] value:255.255.255.0
Form: lancfg      Type: checkboxname:lanconnid:lanconn value:enable
Form: lancfg      Type: checkboxname:Lanselect[]id:Lanselect[] value:11
Form: lancfg      Type: hiddenname:lanname[]id:lanname[] value:lan2
Form: lancfg      Type: hiddenname:lanconn_h[]id:lanconn_h[] value:enable
Form: lancfg      Type: textname:lanaddr[]id:lanaddr[] value:0
Form: lancfg      Type: textname:lanmask[]id:lanmask[] value:0
Form: lancfg      Type: checkboxname:lanconnid:lanconn value:enable
Form: lancfg      Type: checkboxname:Lanselect[]id:Lanselect[] value:11
Form: lancfg      Type: hiddenname:lanname[]id:lanname[] value:lan3
Form: lancfg      Type: hiddenname:lanconn_h[]id:lanconn_h[] value:enable
Form: lancfg      Type: textname:lanaddr[]id:lanaddr[] value:0
Form: lancfg      Type: textname:lanmask[]id:lanmask[] value:0
Form: lancfg      Type: checkboxname:lanconnid:lanconn value:enable
Form: lancfg      Type: checkboxname:Lanselect[]id:Lanselect[] value:11


红色的地方怎么区别?!

shqf 发表于 2012-5-7 20:37:24

在对象集中的index来确定

chinafla 发表于 2012-5-8 12:36:11

用index 楼上正解

ljxu 发表于 2012-5-8 22:15:59

回复 5# chinafla


    能举个例子吗?谢谢

ljxu 发表于 2012-5-8 22:16:09

回复 4# shqf


      能举个例子吗?谢谢

shqf 发表于 2012-5-9 09:21:19

你不说出网页的地址,所给的网页源码也不全,真的很难来帮你呵。
看看下面函数的的帮助吧,应该能解决你的问题。_IEFormElementGetCollection、_IEFormGetCollection、_IETagNameGetCollection、_IETagNameAllGetCollection

chinafla 发表于 2012-5-9 11:18:53

哈哈 楼上又正解

_IEFormElementGetCollection 例子,来自帮助手册; *******************************************************
; Example 1 - Get a reference to a specific form element by 0-based index.
;               In this case, submit a query to the Google search engine
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate ("http://www.google.com")
$oForm = _IEFormGetCollection ($oIE, 0)
$oQuery = _IEFormElementGetCollection ($oForm, 2)
_IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
_IEFormSubmit ($oForm)

ljxu 发表于 2012-5-14 10:03:04

回复 8# shqf


    3Q,仔细看了这几个函数的说明,已经解决了这个问题,下次提问时我会尽量提供详细的信息,方便大家帮助我,再次感谢热心的shqf。

ljxu 发表于 2012-5-14 10:03:34

回复 9# chinafla


   
    3Q,仔细看了这几个函数的说明,已经解决了这个问题,下次提问时我会尽量提供详细的信息,方便大家帮助我,再次感谢热心的chinafla。
页: [1]
查看完整版本: 相同ID,name 如何辨别