jQuery:在表单上选择焦点,显示div。在模糊上隐藏div

时间:2012-11-18 14:00:02

标签: javascript jquery jquery-selectors

抱歉我的英文

我有这段代码:

jsfiddle

没问题

当“select”如下所示我如何调整代码:

<select id="example[164]" name="example[164]" type="text" />
<option value="0">0</option>    
<option value="1">1</option>    
<option value="2">2</option>    
<option value="3">3</option>    
</select>
<div class="test">    
Some text...<br /><input type="checkbox" name="foobar" value="1" /><br />More text...       
</div>`

jsfiddle

感谢您的帮助

:d)

1 个答案:

答案 0 :(得分:0)

除HTML5外,此HTML无效。 []属性中不允许使用字符id,该属性应为字母,数字,句点,连字符,下划线和冒号。

要将该无效ID与jQuery匹配,您需要使用两个反斜杠转义[]

// Match all select elements beginning with example in the id
$('#example\\[164\\]')

在您的示例中,将$('#example')更改为$('#example\\[164\\]')

$('#example\\[164\\]').focus(function() {
    if (timer)
        clearTimeout(timer);
    $('div.test').css('display','block');
    // etc...

后来,它也显示为: 功能(e){

    if ($(e.target).closest('.example, #example\\[164\\]').length) return;

但是,由于是一个有效的id属性(除非您使用的是HTML5),您应该匹配元素的name属性,如果这是在服务器端,而是将id属性更改为有效的<select id='example_164'>

// [] are valid in a name
$('select[name="example[164]"').focus(function() {
    if (timer)
        clearTimeout(timer);
    $('div.test').css('display','block');

Here is the updated jsfiddle