我想修复Firefox中的以下问题
当我尝试使用双击鼠标选择文本框内的文本时,它不选择文本,光标移动到文本的开头。任何想法如何解决这个问题?但这在googlechrome中工作正常
当您尝试编辑无法选择价值的价格列时,我尝试了以下http://www.iwebux.com/demos/ajax/此链接中的以下内容。谢谢。
我的代码:
$(document).ready(function () {
$('td.edit').click(function () {
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
$(this).addClass('ajax');
$(this).html('<input id="editbox" size="' + $(this).text().length + '" type="text" value="' + $(this).text() + '">');
$('#editbox ').focus();
});
$('td.edit').keydown(function (event) {
arr = $(this).attr('class').split(" ");
if (event.which == 13) {
$.ajax({
type: "POST",
url: "supplierprice/config.php",
data: "value=" + $('.ajax input').val() + "&rowid=" + arr[2] + "&field=" + arr[1],
success: function (data) {
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
}
});
}
});
$('#editbox').live('blur', function () {
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
});
});
答案 0 :(得分:0)
您可能希望使用select()而不是focus()。
答案 1 :(得分:0)
我稍微修改了你的脚本。
问题是点击事件从#editbox输入冒泡,所以$('#editbox')。。focus();在每次点击时执行,以防止文本选择。
修改你的代码
$('td.edit').click(function(e){
var $target = $(e.target);
if($target.is('#editbox')){
return;
}
///// rest of code
}
答案 2 :(得分:0)
尝试使用.select()
功能。这用于选择可编辑输入元素中的文本。
在您的情况下,请尝试添加
行$('#editbox').select();
以下
$('#editbox ').focus();
希望这一点。
答案 3 :(得分:0)
您需要停止点击事件从#editbox
传播到td.edit
。尝试添加:
$("td.edit").on("click", "#editbox", function(e) { e.stopPropagation(); });
答案 4 :(得分:0)
请使用此代码
$('td.edit').click(function(e){
var $target = $(e.target);
if($target.is('#editbox')){
return;
}
}