2016-02-29 36 views
1

我有一个带有文本字段的HTML表格。当在这些文本框内敲击回车时,焦点转移到未禁用或隐藏的下一个输入。我使用下面的代码来选择这些输入:避免使用.not选择器只读属性只读文本框

var $focusable = $(focusable) 
    .not(":disabled") 
    .not(":hidden") 
    .not("a[href]:empty"); 

这工作正常。我的问题是,我想跳过具有readonly属性的文本框。我尝试添加.not(":readonly")的代码,但它返回一个错误:

Unrecognized expression

我怎样才能避免在readonly属性的文本框?

回答

1

没有:readonly选择器。相反,你应该使用属性选择器来获得只读元素,像这样:

var $focusable = $(focusable).not('[readonly], :disabled, :hidden, a[href]:empty"); 

注意,我合并所有的选择中一个方法调用。