Internet Explorer onclick->焦点无法正常工作

时间:2011-11-04 13:31:42

标签: jquery internet-explorer

我有一个使用jQuery的函数

function enableField(fieldID) {
    $("#" + fieldID).removeAttr('disabled').focus().select();
}

从HTML页面中的以下代码调用

    <input id="phone_nr" name="phone"
           type="text" size="30" value="12345"/>

    <a href="javascript:void(0);" 
       onclick="enableField('phone_nr'); return false;">Change</a>

最初禁用输入字段。因此,对JS方法的调用再次启用它,然后将焦点放在字段上并选择内部文本进行编辑。

Internet Explorer(9)没有正确执行此操作(所有其他浏览器都这样做)。点击“更改”链接后,似乎没有任何事情发生。

2 个答案:

答案 0 :(得分:1)

<input id="phone_nr" name="phone" type="text" size="30" value="12345"/>
<a href="#" id="mylink">Change</a>

删除了您的内嵌JavaScript并将其替换为此。

$(document).ready(function() {
    $('#myLink').click(function(e) {
        e.preventDefault();
        $('#phone_nr').removeAttr('disabled').focus().select();
    });
});

目前尚不清楚每个领域是否有“更改”链接,但如果你这样做......

<input id="field0" name="phone" type="text" size="30" value="12345"/>
<a href="#" id="mylink-0">Change</a>

<input id="field1" name="name" type="text" size="30" value="name"/>
<a href="#" id="mylink-1">Change</a>

<input id="field2" name="fax" type="text" size="30" value="12345"/>
<a href="#" id="mylink-2">Change</a>

$(document).ready(function() {
    $('a[id|="mylink"]').each(function (i) {
        $(this).click(function(e) {
            e.preventDefault();
            $('#field' + i).removeAttr('disabled').focus().select();
        });
    });
});

答案 1 :(得分:0)

尝试在document.ready事件中添加链接onclick处理程序:

    $(document).ready(function () {
       $("#mylink").click(function(){
         $("#phone_nr").removeAttr('disabled').focus().select();    
       });
    })

...

    <a href="javascript:void(0);" id="mylink">Change</a>