在field1模糊时,field2设置为READONLY,但是我页面上的光标默认为field2,光标位于值的END处,当用户单击退格按钮时,可以删除该值。我希望能够将光标移动到页面上的下一个非READONLY或ENABLED字段。可以用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]
答案 0 :(得分:0)
您是否尝试在RETURN TRUE之前修改tabindexes onblur,以控制光标的位置?这是一种黑客攻击,但你去了。
此外,您可以使用委托事件(可能在表单上)拦截并在任何会修改任何只读输入值的按键事件上返回false。类似的东西:
$('#ARTransferForm *[readonly]').live("keypress", function(event) {
// compare keycode to blacklist: backspace, perhaps delete too?
if(bKeyIsBlacklisted) {
event.preventDefault();
return false;
}
});
(注意:这是非常伪的。你需要仔细检查sizzle的属性选择器的语法,以及jquery的事件委托签名。并且真实小心你的广告你的“无钥匙”网:尽量避免禁止使用键盘快捷键执行复制和其他操作。你需要检查修改键,以区分用户尝试键入“c”和Ctrl + C.
您正在测试哪种浏览器?