Вопрос о переходе на следующее НЕ ЧИТАЕМЫЕ поле - PullRequest
0 голосов
/ 30 июня 2011

При размытии поля field1 field2 устанавливается на READONLY, но курсор на моей странице по умолчанию становится field2, и курсор находится в конце значения, и когда пользователь нажимает кнопку возврата, значение может быть стерто.Я хотел бы иметь возможность перемещать курсор к следующему НЕ ЧИТАЕМОМУ или ВКЛЮЧЕННОМУ полю на странице.Это выполнимо с jQuery?

Буду признателен за любую помощь / направление.Спасибо.

Вот мой код:

[code]
$(function() {
           $("#ARTransferForm\\:fromAccountAmt").blur(function() {
               var origAccountAmount = $("#ARTransferForm\\:fromAccountAmt").val();
               var fromAccountAmount = $("#ARTransferForm\\:fromAccountAmt").val();
               // Call validation "r2" function            
               var modFromAccountAmount = r2(fromAccountAmount);
               //alert("modFromAccountAmount = " + modFromAccountAmount);
               fromAccountAmount = $("#ARTransferForm\\:fromAccountAmt").val(modFromAccountAmount).val();
               //alert ("modified fromAccountAmount = " + fromAccountAmount);
               if (modFromAccountAmount != "N.aN") {
                   var firstChar = fromAccountAmount.charAt(0);
                   var fromAcctAmtLen = $("#ARTransferForm\\:fromAccountAmt").val().length;
                   if (firstChar == "-") {
                       var revFromAcctAmt = fromAccountAmount.substring(1, fromAcctAmtLen);
                       $("#ARTransferForm\\:toAccountAmt").val(revFromAcctAmt);
                       $("#ARTransferForm\\:toAccountAmt").attr("readonly", "readonly");
                   } else {
                       $("#ARTransferForm\\:toAccountAmt").val("-"+fromAccountAmount);
                       $("#ARTransferForm\\:toAccountAmt").attr("readonly", "readonly");                 
                   }
               } else {
                   $("#ARTransferForm\\:fromAccountAmt").val(origAccountAmount);
                   $("#ARTransferForm\\:fromAccountAmt").select();
                   alert("Invalid From Amount Format. Use ##.## (NO commas or $ sign)");
               }
           });
       });
[/code]

1 Ответ

0 голосов
/ 30 июня 2011

Вы пытались изменить tabindexes onblur, прежде чем RETURN TRUE, чтобы контролировать направление курсора? Это что-то вроде взлома, но вы идете.

Кроме того, вы можете использовать делегированное событие (возможно, в форме) для перехвата и возврата false при любых событиях нажатия клавиш, которые изменят значение любого ввода только для чтения. Что-то вроде:

$('#ARTransferForm *[readonly]').live("keypress", function(event) {
    // compare keycode to blacklist: backspace, perhaps delete too?
    if(bKeyIsBlacklisted) {
        event.preventDefault();
        return false;
    }
});

(Примечание: это довольно псевдокодонно. Вы захотите перепроверить синтаксис для селекторов атрибутов sizzle, а также подпись делегирования события jquery. И будьте реальными , внимательно следите за тем, как широко вы используете "no keys" net: старайтесь не запрещать копирование и другие операции, выполняемые с помощью сочетаний клавиш. Вам нужно будет проверить наличие клавиши-модификатора, чтобы различать пользователя, пытающегося набрать "c" и Ctrl + C.

В каких браузерах вы это тестируете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...