0

我正在开发一个 asp.net mvc3 应用程序。在视图中,有一个隐藏的输入字段,type="text"在某些条件下会显示该字段。如果满足条件并显示该字段,如果输入了文本,我想执行客户端验证。

隐藏时为输入呈现的 HTML 是这样的:

<input class="yesNoNotApplicableTextbox" type="text" value="" style="display: none;" name="[14].FieldValue">

当输入变为可见时,HTML 将更改为:

<input class="yesNoNotApplicableTextbox" type="text" value="" style="" name="[14].FieldValue">

在我的.js文件中,我有这个:

$("input.yesNoNotApplicableTextbox[type='text'][style='display: none;']")

实际上,当它不可见时我不需要该字段,我只是想检查它是否有效并且确实有效。但是如果我检查输入是否像这样可见,则根据生成的 HTML:

$("input.yesNoNotApplicableTextbox[type='text'][style='']")

它不工作。

如何检查输入字段是否显示?

4

5 回答 5

2
$("input.yesNoNotApplicableTextbox[type='text']:hidden") //hidden ones

$("input.yesNoNotApplicableTextbox[type='text']:visible") //visible ones
于 2013-06-19T12:23:06.163 回答
2

这只会选择与选择器匹配且可见的元素:

$("input.yesNoNotApplicableTextbox[type='text']:visible")

:visible和之间的区别.is(':visible')是这样的:

:visible
我:嘿 jQuery,给我所有匹配这个选择器并且可见的元素。
jQuery:好的,这里是元素。

.is(':visible')
我:嘿 jQuery,给我所有匹配这个选择器的元素。
jQuery:这是您要求的元素。
我:好的,现在给我这个列表中可见的元素。

来自jQuery 文档

描述:选择所有可见的元素。

如果元素占用了文档中的空间,则元素被认为是可见的。可见元素的宽度或高度大于零。

于 2013-06-19T12:24:40.913 回答
1
if($("input.yesNoNotApplicableTextbox[type='text']").is(':visible')){
    alert("Visible");
}
于 2013-06-19T12:23:48.293 回答
1

使用:visible选择器

$("input.yesNoNotApplicableTextbox[type='text']:visible")
于 2013-06-19T12:24:11.200 回答
0
$("input.yesNoNotApplicableTextbox[type='text']").is(":visible")
于 2013-06-19T12:23:38.690 回答