如何修改此代码,使它不是.focus()
第一个表单对象(如果是readonly
或disabled
),并跳至下一个表单输入以获取焦点?
当前,如果第一个输入框被禁用,它将返回一个错误,但是如果它也是只读的,我也想跳到下一个输入框,并且如果所有输入都被禁用并且是只读的,那么它应该不关注任何内容。
<script language="javascript" type="text/javascript">
// Focus first element
$.fn.focus_first = function() {
var elem = $('input:visible', this).get(0);
var select = $('select:visible', this).get(0);
if (select && elem) {
if (select.offsetTop < elem.offsetTop) {
elem = select;
}
}
var textarea = $('textarea:visible', this).get(0);
if (textarea && elem) {
if (textarea.offsetTop < elem.offsetTop) {
elem = textarea;
}
}
if (elem) {
elem.focus();
}
return this;
}
</script>
实际上使用
input:enabled:visible
可以解决很多问题,但是我仍在尝试找出是否为只读,以跳至下一个。 最佳答案
用 :
$(yourElement).not(":disabled").not(":readonly")
关于javascript - 如何在使用.focus()时跳过只读和禁用输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9150311/