jQuery отключить поле ввода, когда указано c поле ввода сфокусировано - PullRequest
1 голос
/ 07 апреля 2020

У меня есть два поля ввода, и я хочу, чтобы другое было отключено, если в другом есть значение. Я попробовал, используя jQuery, но ничего не происходит. Может кто-то знает, что мне с этим делать? Спасибо

Мое поле ввода

<ul>
<li id="fixedSalaryList"><b>Fixed Salary (Monthly)</b>
    <a href="#" class="show-input">$<?php echo $data['app1']['salary']; ?> <img src="<?php echo $dirimg; ?>/arrow-right.svg"></a>
    <input type="text" name="salary[]" id="fixedSalary" class="assest-input inputNumber" value="<?php echo $data['app1']['salary']; ?>" inputmode="numeric">
</li>
<li id="selfEmployedList"><b>Self-Employed Income (Annually)</b>
    <a href="#" class="show-input">$<?php echo $data['app1']['selfEmployedIncome']; ?><img src="<?php echo $dirimg; ?>/arrow-right.svg"></a>
    <input type="text" name="selfEmployedIncome[]" id="selfEmployed" class="assest-input inputNumber" value="<?php echo $data['app1']['selfEmployedIncome']; ?>" inputmode="numeric">
</li>
</ul>

jQuery

 $('input').on('input', function() {
    $(this).closest('li').find('input').not(this).prop('disabled', this.value.length)
  });

$('li input').on('input', function() {
    $(this).closest('li').find('input').not(this).prop('disabled', this.value.length)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li id="fixedSalaryList"><b>Fixed Salary (Monthly)</b>
    <a href="#" class="show-input">$</a>
    <input type="text" name="salary[]" id="fixedSalary" class="assest-input inputNumber"  inputmode="numeric">
</li>
<li id="selfEmployedList"><b>Self-Employed Income (Annually)</b>
    <a href="#" class="show-input">$</a>
    <input type="text" name="selfEmployedIncome[]" id="selfEmployed" class="assest-input inputNumber"  inputmode="numeric">
</li>
</ul>

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Вы можете сделать это с событием change(), например

jQuery

$(document).ready(function(){
  $("#selfEmployed").change(function(){
   $("#fixedSalary").prop('disabled', true);
  });

  $("#fixedSalary").change(function(){
   $("#selfEmployed").prop('disabled', true);
  });

});

Теперь оно будет работать в обоих направлениях.

0 голосов
/ 07 апреля 2020

Это именно то, что вы искали

$(document).ready(function(){
  $("#selfEmployed").keyup(function(){
  if(!$("#selfEmployed").val()){
  $("#fixedSalary").prop('disabled', false);
  } 
  else {
   $("#fixedSalary").prop('disabled', true);
   }
});


  $("#fixedSalary").keyup(function(){
  if(!$("#fixedSalary").val()) {
  $("#selfEmployed").prop('disabled', false);
  } 
  else {
   $("#selfEmployed").prop('disabled', true);
   }
  }); 
});

Примечание: помните, что мы делаем это для события keyup(), поэтому, даже если вы удалите ввод, оно будет работать.

0 голосов
/ 07 апреля 2020

Вы можете сделать что-то вроде этого:

$(document).ready(function() {
  $("#fixedSalary").on("input", function() {
    if ($("#fixedSalary").val() != "") {
      $("#selfEmployed").prop('disabled', true);
    } else {
      $("#selfEmployed").prop('disabled', false);
    }
  });

  $("#selfEmployed").on("input", function() {
    if ($("#selfEmployed").val() != "") {
      $("#fixedSalary").prop('disabled', true);
    } else {
      $("#fixedSalary").prop('disabled', false);
    }
  });
});

$("#btnReset").click(function() {
  $("#fixedSalary").prop('disabled', false);
  $("#selfEmployed").prop('disabled', false);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li id="fixedSalaryList"><b>Fixed Salary (Monthly)</b>
    <a href="#" class="show-input">$</a>
    <input type="text" name="salary[]" id="fixedSalary" class="assest-input inputNumber" inputmode="numeric">
  </li>
  <li id="selfEmployedList"><b>Self-Employed Income (Annually)</b>
    <a href="#" class="show-input">$</a>
    <input type="text" name="selfEmployedIncome[]" id="selfEmployed" class="assest-input inputNumber" inputmode="numeric">
  </li>
</ul>

<input type="submit" text="Reset" id="btnReset">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...