0

我一直在尝试使用 jQuery 进行一些实验,基本上它不起作用,这是我的 HTML:

<input class="span4" value="" id="dpd1" type="text"> <!-- Input that needs value -->
<input class="span4" value="" id="dpd2" type="text" disabled> <!-- Input which needs 'enabled' -->

这就是我正在尝试使用 jquery 的内容:

$('#dpd2').click( function () {
    var value = $('#dpd1').val();
    if( value.length > 0 ){
    $("#dpd2").prop('disabled', disabled); }
    });

可能不应该试图让所有这一切发生在点击上,但我之前还没有在 jQuery 中做过类似的事情,所以不确定哪种方式最适合这种情况。

任何帮助表示赞赏。

编辑:我选择了最能突出我实现我想要的结果的最短和有效方法的答案。但是那里也有其他一些很棒的答案!谢谢!!

4

3 回答 3

3

使用布尔值禁用/启用属性prop()

$('#dpd1').on('keyup', function () {
    $('#dpd2').prop('disabled', this.value.length < 1); 
});

小提琴

于 2013-06-15T19:31:41.977 回答
3

您可能想在blur第一个文本框中执行此操作,

$('#dpd1').blur(function () {
    $("#dpd2").prop('disabled', !$.trim($('#dpd1').val()).length);
});

演示

prop需要一个布尔值。当您最初将文本框设置为禁用时,您将无法再单击它。因此blur,一旦您将注意力集中在第一个文本框之外,就可以使用它来执行操作。$.trim()用于从文本框值的末尾删除空格

于 2013-06-15T19:37:16.533 回答
1

是的,click在这里不起作用,您需要实现更改处理程序,然后检查该值是否为空字符串,如果不是,则更改另一个输入上的禁用属性。

就像是:

$('#dpd1').change(function () {
    $("#dpd2").prop('disabled', $('#dpd1').val() == '');
});
于 2013-06-15T19:32:45.970 回答