jquery禁用/启用输入/单选按钮

时间:2011-11-24 07:07:58

标签: jquery input checkbox radio-button

我禁用表单字段上的输入/单选按钮。 当我尝试使用按钮再次启用它们时,工作正常。 http://jsfiddle.net/3Z6aQ/

  $(document).ready(function() {
  $(".control").toggle(

  function() {
      $('.target').removeAttr("disabled");
      $(this).addClass("checked");
  }, function() {
      $('.target').attr("disabled", true);
      $(this).removeClass("checked");
  });
});

但是现在,我尝试使用“输入”按钮再次启用此输入按钮,但这里没有任何反应......你能帮助我吗?

$(document).ready(function() {
$(".control").toggle(

function() {
    $('.target').removeAttr("disabled");
    $(this).addClass("checked");
},
function() {
    if (e.keyCode == 13) {
        $('.target').attr("disabled", true);
        $(this).removeClass("checked");
        return false;
    }
});
});

http://jsfiddle.net/f6s8U/

这就是我在过去一小时内尝试过的......但我的代码存在一些问题

$(document).ready(function() {
$(".control").toggle(

function() {
    $('.target').removeAttr("disabled");
    $(this).addClass("checked");
},

$('input').keypress(function(event) {

    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
        $('.target').removeAttr("disabled");
        $(this).addClass("checked");
        alert('You pressed a "enter" key in textbox');
    }
});
});
});

2 个答案:

答案 0 :(得分:1)

你不清楚你所追求的是什么,所以如果你能给我们提供更多的信息会很好。

但是形成我收集的东西,这就是你所追求的:

$(document).ready(function () {
    $(".control").toggle(

    function () {
        $('.target').removeAttr("disabled");
        $(this).addClass("checked");
    }, function () {
        $('.target').attr("disabled", true);
        $(this).removeClass("checked");
    });
});

另外,请确保您使用的是jQuery 1.7,因为这就是您的小提琴。

FIDDLE HERE

答案 1 :(得分:0)

我回到了你的第一个小提琴,然后为你的输入添加了一个按键事件。由于您只能在输入启用时触发输入按键,因此您可以触发“复选框”上的点击 - 这反过来会禁用输入:

$(document).ready(function () {
    $(".control").toggle(
    function () {
        $('.target').removeAttr("disabled");
        $(this).addClass("checked");
    }, function () {
        $('.target').attr("disabled", true);
        $(this).removeClass("checked");
    });

    $('input').keypress(function (e) {
        if (e.which == 13) {
            $('.control').click();
        }
    });
});

JSFiddle