jQuery focus()不在FireFox中工作,但在Chrome中工作

时间:2014-03-19 09:57:19

标签: jquery firefox focus

我知道之前已经问过这个问题,因为我在过去几个小时内一直在寻找解决方案。 我的想法是我有一个显示文本值的表格单元格。点击事件后,该值将转换为输入字段,使其可编辑。

我的代码在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);

任何想法都会有所帮助。干杯!

1 个答案:

答案 0 :(得分:2)

您的input选择器格式错误,因为您错过了结束"]

var input = $('[name="enter_order_product[' + product_row + '][quantity]');

将其更改为:

var input = $('[name="enter_order_product[' + product_row + '][quantity]"]');