我希望在调用函数时将第一个有效元素集中在我的表单中,所以我写了这段代码:
function focusFirst(id) {
$("#" + id + " input:visible:enabled:not([readonly]), #" + id + "textarea:visible:enabled:not([readonly]), #" + id + " select:visible:enabled:not([readonly])").first().focus();
}
并称之为:
oncomplete="focusFirst('formCadastro')"
我的表单命名为:" formCadastro",无论如何它都无法工作,但当我改为这个时:
function focusFirstFormCadastro() {
$("#formCadastro input:visible:enabled:not([readonly]), #formCadastro textarea:visible:enabled:not([readonly]), #formCadastro select:visible:enabled:not([readonly])").first().focus();
}
它有效。所以这里的问题是如何在选择器内连接我的id?
答案 0 :(得分:3)
第二个ID之后你错过了一个空格:
function focusFirst(id) {
$("#" + id + " input:visible:enabled:not([readonly]), #" + id + " textarea:visible:enabled:not([readonly]), #" + id + " select:visible:enabled:not([readonly])").first().focus();
}
答案 1 :(得分:1)
您忘了在ID en textarea之间添加空格:更新链接如下:
$("#" + id + " input:visible:enabled:not([readonly]), #" + id + " textarea:visible:enabled:not([readonly]), #" + id + " select:visible:enabled:not([readonly])").first().focus();
答案 2 :(得分:1)
为了便于阅读,您应该使用相关的横向/过滤方法:
function focusFirst(id) {
$("#" + id).find('input, textarea').filter(':visible:enabled:not([readonly])').first().focus();
}