html - 无法在下拉列表中选择项目

标签 html powershell html-select

我在 html 中有以下下拉列表:

<select id="ctl00_MainContent_ddlPlatform" tabindex="1">
        <option selected="selected" value="-1">Please select...</option>
        <option value="4">UNIX</option>
        <option value="5">Database</option>
        <option value="6">Windows</option>
        <option value="8">AD Group</option>
        <option value="9">Network Devices</option>
</select>

在 Poweshell 中我通过 id 选择它:

$serverType = $ie.document.getElementById('ctl00_MainContent_ddlPlatform')

为 Windows 获取索引:

$type = getValue $serverType.innerHTML 'Windows'  

我检查过,$type = "6"

然后选择这个选项:

$serverType.Value = $type

但后来我检查了 $serverType.Value,它是空的。

它之前有效,我没有做任何更改。

这很奇怪,但是如果我设置

$serverType.Value = "6",它正在运行。

更新:

这是我的函数 getValue:

function getValue($innerHTML, $serverName)
{   
    $position = $innerHTML.IndexOf($serverName)
    if ($position -ge 0)
    {
        $innerHTML = $innerHTML.Substring($innerHTML.IndexOf($serverName) - 11, 10)       
        return $innerHTML.Substring($innerHTML.IndexOf('=') + 1)
    }
    else
    {
        return -1
    }
}

奇怪的是,如果我尝试转换[int]$type,我会得到错误:

Cannot convert value ""6"" to type "System.Int32". Error: "Input string was not in a correct format."

最佳答案

$type变量设置明确的字符串数据类型:

[String]$type = getValue $serverType.innerHTML 'Windows' 

Powershell 通过最合适的类型为新变量设置数据类型,在您的例子中是 INT。

您可以像这样检查变量数据类型:

PS C:\> $type = 6
$type.GetType().Name
Int32

PS C:\> $type = '6'
$type.GetType().Name
String

关于html - 无法在下拉列表中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41751924/

相关文章:

javascript - 具有过滤功能的 HTML 和 javascript <select> 标签

asp.net-mvc - 为什么 SelectList SelectedValue 在 HttpGet 上有效,但在 HttpPost 上无效?

html - 使用 Jquery 创建某种 SPA

html - Safari 是否有显示视口(viewport)大小的免费扩展

git - 防止 pull 请求构建触发持续部署触发器 Azure DevOps 服务器

powershell - 查找管理组名称

jquery - 如何使用 jQuery 克隆后获取选定的值?

javascript - 如何在没有内联脚本的情况下异步加载 CSS(符合 CSP)

javascript - 使用 base64 编码图像是否有一些性能优势?

azure - 如何将文件从存储帐户容器中的一个文件夹移动到另一文件夹