Jeditable - ошибка с onblur: отправьте и нажмите Textbox - PullRequest
2 голосов
/ 10 мая 2011

У меня есть таблица, где вы вводите свои часы.Mouseover, похоже, ничего не делает.Нажмите, dblclick и focus do.

У меня может быть не только ENTER для отправки, поэтому onblur: submit.Если я использую любой щелчок или фокус, фокусируем один «текст», затем другой «текст» сразу после (прежде чем щелкнуть где-нибудь еще), открывается второй «текст» -> закрывается, затем становится недоступным для редактирования.Пожалуйста и спасибо.Использование Jeditable 1.4.3 Когда я закомментирую onblur: submit, я не получаю сообщение об ошибке текстового поля.Я хотел бы использовать mouseover и даже mouseout для отправки, если это возможно.

код можно найти здесь ...

http://pastebin.com/7FC7pD1x

1 Ответ

0 голосов
/ 19 июля 2012

РЕДАКТИРОВАТЬ: Возможное решение в конце

Я думаю, я понимаю, к чему вы стремитесь, потому что у меня та же проблема (и еще не видел ни одного решения).

Если я правильно понимаю, проблема заключается в следующем:

Если у вас есть таблица, где каждая ячейка связана с jedtiable с помощью onblur: 'submit', вы ожидаете, что при нажатии на одну из нихвнесите изменения, а затем щелкните другую ячейку, которую отправит первая ячейка, и вы сможете продолжить редактирование второй ячейки.Однако, похоже, что вы щелкаете по первой ячейке, вносите свои изменения, щелкаете по второй ячейке (размытие первой ячейки и вызываете отправку по первой ячейке), начинаете редактирование второй ячейки, а затем, как только первая ячейкапередает вторую ячейку, получает событие размытия, а также отправляет и закрывает.

То, что вы хотите, - это чтобы первая ячейка отправлялась и закрывалась, но оставляла вторую ячейку открытой и редактировалась.Я не уверен, почему он получает событие размытия при отправке первой ячейки.

EDIT Я нашел возможное решение, хотя оно требует взлома jeditable.

Если вы добавите setTimeout в блок кода в jeditable, который фокусируется на поле ввода, это, похоже, решит проблему.

Найдите эту строку в jeditable:

$(":input:visible:enabled:first", form).focus();

и измените ее на:

setTimeout(function() {
    $(":input:visible:enabled:first", form).focus();
}, 500);

Кажется, что это делает, но я надеюсь, что есть лучший способ.

...