Highlight submit for syntax highlighted textareas

This commit is contained in:
Jakub Vrana 2013-07-23 16:33:07 -07:00
parent 0d074077bb
commit 07ba250939
3 changed files with 24 additions and 11 deletions

View file

@ -30,7 +30,10 @@ function bodyLoad(version) {
var tags = document.getElementsByTagName('textarea'); var tags = document.getElementsByTagName('textarea');
for (var i = 0; i < tags.length; i++) { for (var i = 0; i < tags.length; i++) {
if (/(^|\s)jush-/.test(tags[i].className)) { if (/(^|\s)jush-/.test(tags[i].className)) {
jush.textarea(tags[i]); var pre = jush.textarea(tags[i]);
if (pre) {
setupSubmitHighlightInput(pre);
}
} }
} }
} }

View file

@ -636,19 +636,26 @@ function setupSubmitHighlight(parent) {
for (var key in { input: 1, select: 1, textarea: 1 }) { for (var key in { input: 1, select: 1, textarea: 1 }) {
var inputs = parent.getElementsByTagName(key); var inputs = parent.getElementsByTagName(key);
for (var i = 0; i < inputs.length; i++) { for (var i = 0; i < inputs.length; i++) {
if (!/submit|image|file/.test(inputs[i].type)) { setupSubmitHighlightInput(inputs[i])
addEvent(inputs[i], 'focus', inputFocus);
addEvent(inputs[i], 'blur', inputBlur);
}
} }
} }
} }
/** Setup submit highlighting for single element
* @param HTMLElement
*/
function setupSubmitHighlightInput(input) {
if (!/submit|image|file/.test(input.type)) {
addEvent(input, 'focus', inputFocus);
addEvent(input, 'blur', inputBlur);
}
}
/** Highlight default submit button /** Highlight default submit button
* @this HTMLInputElement * @this HTMLInputElement
*/ */
function inputFocus() { function inputFocus() {
var submit = findDefaultSubmit(this.form); var submit = findDefaultSubmit(this);
if (submit) { if (submit) {
alterClass(submit, 'default', true); alterClass(submit, 'default', true);
} }
@ -658,18 +665,21 @@ function inputFocus() {
* @this HTMLInputElement * @this HTMLInputElement
*/ */
function inputBlur() { function inputBlur() {
var submit = findDefaultSubmit(this.form); var submit = findDefaultSubmit(this);
if (submit) { if (submit) {
alterClass(submit, 'default'); alterClass(submit, 'default');
} }
} }
/** Find submit button used by Enter /** Find submit button used by Enter
* @param HTMLFormElement * @param HTMLElement
* @return HTMLInputElement * @return HTMLInputElement
*/ */
function findDefaultSubmit(form) { function findDefaultSubmit(el) {
var inputs = form.getElementsByTagName('input'); if (el.jushTextarea) {
el = el.jushTextarea;
}
var inputs = el.form.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) { for (var i = 0; i < inputs.length; i++) {
var input = inputs[i]; var input = inputs[i];
if (input.type == 'submit' && !input.style.zIndex) { if (input.type == 'submit' && !input.style.zIndex) {

2
externals/jush vendored

@ -1 +1 @@
Subproject commit 06a7c7d73e2d031a493d1f07d37733aba94399f2 Subproject commit 12e6421d5a02ba8c3e2db2b4080187053b9a4655