我知道这个问题之前已经被问过,因为我在过去的几个小时里正在寻找解决方案。 我的想法是我有一个显示文本值的表格单元格。单击事件后,该值将转换为输入字段,使其可编辑。
我的代码在 Chrome 上完美运行,但在 FireFox 中测试时,会显示输入文本,但我根本无法编辑该字段。
这是我的代码:
function openInput(product_row) {
var qty = $('[name="order_product[' + product_row + '][quantity]"]').val();
text = '<input type="text" name="enter_order_product[' + product_row + '][quantity]" value="'+qty+'" style="text-align:right;width:30px;" />';
$( "#order_product_" + product_row + "_quantity" ).html(text + '<input type="hidden" name="order_product[' + product_row + '][quantity]" value="' + qty + '" />');
var input = $('[name="enter_order_product[' + product_row + '][quantity]');
input.focus();
}
在表格单元格上的单击事件上调用 openInput 函数。
我不得不说,我已经尝试过这种解决方法,但没有成功
setTimeout(function() {
input.focus();
}, 0);
任何想法都会有帮助。干杯!
最佳答案
您的 input
选择器格式错误,因为您缺少结束 "]
:
var input = $('[name="enter_order_product[' + product_row + '][quantity]');
将其更改为:
var input = $('[name="enter_order_product[' + product_row + '][quantity]"]');
关于jQuery focus() 在 FireFox 中不起作用,但在 Chrome 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502085/