当另一个输入有值时,jQuery禁用输入

时间:2015-04-14 14:08:42

标签: javascript jquery

我想在将任何文本添加到另一个输入时禁用特定输入。尝试做的是这个 JS

$('#sPriceRewards').on('input', function() {
$(this).find('.inputReward').not(this).prop('disabled', this.value.length)});

HTML

<input type="text" name="sPriceRewards" id="sPriceRewards" value="" />
<input type="text" name="sReward1" value="" class="inputReward" />

Here's fiddle

TNX

4 个答案:

答案 0 :(得分:3)

这是一个简单的逻辑:https://jsfiddle.net/p623brhL/4/

$('#sPriceRewards').on('input', function() {

   if($(this).val().length)
      $('.inputReward').prop('disabled', true);
   else
      $('.inputReward').prop('disabled', false);
});

答案 1 :(得分:2)

您需要修改选择器以定位下一个元素:

 $('#sPriceRewards').on('input', function() {
   $(this).next().prop('disabled', this.value.length);
 });

<强> Working Demo

答案 2 :(得分:0)

http://jsfiddle.net/p623brhL/3/现在有效。您试图在当前输入中找到另一个输入。但它不是当前输入的孩子

$('.inputReward').not(this).prop('disabled', this.value.length)});

答案 3 :(得分:0)

$('#sPriceRewards').on('change', function() {
    if(this.value.length > 0)
        $(this).siblings('.inputReward').attr('disabled','disabled');
    else
        $(this).siblings('.inputReward').removeAttr('disabled');
});