我试图通过ajax调用创建一个“a”标记。
代码如下:
<form method="post" id="submitrow">
<table>
<tr>
<td>
<input name="quantity" id="id_quantity" />
</td>
<td>$
<input name="price" id="id_price" />
</td>
<td><span id="add_row"></span>
</td>
</tr>
</table>
</form>
<script>
jQuery("#id_quantity").change(function () {
jQuery('#add_row').html('<a onclick="document.forms[\'submitrow\'].submit();" id="sbmbtn">click me</a>');
jQuery('#sbmbtn').focus(); // I want to focus the new link, it does not works
alert(jQuery('#sbmbtn').is(':focus')); // it should be True!
jQuery('#sbmbtn').live("keyup", function (e) {
if (e.keyCode == 13) {
alert('whoot whoot!');
}
});
});
jQuery("#id_quantity").focus();
</script>
在html替换后,似乎没有正确更新DOM。也许我必须以不同的方式替换代码?
我创建了一个fiddle,其中包含我的代码的简化版本,可以重现问题。
提前感谢您提供的任何提示! :)
答案 0 :(得分:2)
只需在 a 标记
上设置tabindex即可jQuery("#id_quantity").change(function () {
jQuery('#add_row').html('<a tabindex="11" onclick="document.forms[\'submitrow\'].submit();" id="sbmbtn">click me</a>');
jQuery('#sbmbtn').focus(); // I want to focus the new link, it does not works
alert(jQuery('#sbmbtn').is(':focus')); // it should be True!
jQuery('#sbmbtn').live("keyup", function (e) {
if (e.keyCode == 13) {
alert('whoot whoot!');
}
});
});
jQuery("#id_quantity").focus();