Правильный способ использования && и ||в JavaScript - PullRequest
0 голосов
/ 17 сентября 2018

Я сделал небольшое веб-приложение.И хочу сделать, когда я нажимаю «ввод», должна быть проверка, есть ли пустое или пробел значение.В этом случае у меня есть «alert».

Поэтому я использовал прослушиватель событий.Но это работает неправильно.Оповещение появляется, когда я нажимаю не только «войти».Нужна ваша помощь!

const convert = document.getElementById('convert');

currentValue.addEventListener('keypress', function(event) {
  if (event.which === 13 && currentValue.value === '' ||
    currentValue.value === ' ') {
    alert('value is empty');
  } else {
    convertTemperature();
  }
}, false);
<div id="application">
  <input id="currentValue" type="number">
  <select id="select">
    <option value="celsius">Celsius</option>
    <option value="fahrenheit">Fahrenheit</option>
    <option value="kelvin">Kelvin</option>
  </select>
  </br>
  <button id="convert">Convert</button>
  </br>
  <input id="value1" type="text">
  </br>
  <input id="value2" type="text">
</div>

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Пожалуйста, попробуйте это ниже

const convert = document.getElementById('convert');

currentValue.addEventListener('keypress', function(event) {
  if (event.which === 13) {
   if (currentValue.value === '' ||
    currentValue.value === ' ') {
    alert('value is empty');
  } else {
    convertTemperature();
  }
  }
}, false);
<div id="application">
  <input id="currentValue" type="number">
  <select id="select">
    <option value="celsius">Celsius</option>
    <option value="fahrenheit">Fahrenheit</option>
    <option value="kelvin">Kelvin</option>
  </select>
  </br>
  <button id="convert">Convert</button>
  </br>
  <input id="value1" type="text">
  </br>
  <input id="value2" type="text">
</div>
0 голосов
/ 17 сентября 2018

Сначала вам нужен form, поэтому вам не нужно фокусироваться на кнопке, а затем проверьте enter.

В этом случае вам понадобится только оператор.

function convertTemp(event) {
  event.preventDefault();
  let __key = event.keyCode || event.which,
    __ipVal = document.getElementById('currentValue').value;
  if (__ipVal === '' || __ipVal === ' ') {
    alert('value is empty');
  } else {
    console.log('Convert Temp')

  }
}
<div id="application">
  <form id='convertTempForm' onsubmit='convertTemp(event)'>
    <input id="currentValue" type="number">
    <select id="select">
      <option value="celsius">Celsius</option>
      <option value="fahrenheit">Fahrenheit</option>
      <option value="kelvin">Kelvin</option>
    </select>

    <button id="convert" type='submit'>Convert</button>
  </form>
  <div>
    <input id="value1" type="text">
  </div>
  <div>
    <input id="value2" type="text">
  </div>
</div>
0 голосов
/ 17 сентября 2018

&& имеет более высокий приоритет, чем ||поэтому вы должны добавить () для ||условие как следующее (currentValue.value === '' || currentValue.value === ' ')

const convert = document.getElementById('convert');

currentValue.addEventListener('keypress', function(event) {
    if (event.which === 13 )
       if(currentValue.value === '' || currentValue.value === ' ') {
          alert('value is empty');
      } else {   
            convertTemperature();
      }
}, false); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...