rt2233
@rt2233

Как проверить пустое ли поле в графическом интерфейсе?

Есть скрипт интерфейса:
<!DOCTYPE html>
<html lang='en'>
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width,
	initial-scale=1.0">
	<title>Document</title>
	<link rel="stylesheet" href="style.css">
	<script src="eel.js"></script>
</head>
<body>

	<div class="box">
		<form action="#">
			<input type="text" id='chislo1' placeholder="Число">
			<input type="text2" id="chislo2" placeholder="Число">
			<input type="submit" id="btn" value="Сгенерировать число">
		</form>
	</div>
	<script>
		let btn = document.querySelector('#btn')
		btn.addEventListener('click', sendData);
		
		async function sendData() {
			let chislo1 = document.querySelector('#chislo1').value;
			let chislo2 = document.querySelector('#chislo2').value;

			await eel.rek_data(chislo1, chislo2)
		}



		</script>
</body>
</html>

И есть скрипт генерации:
import eel
import random

eel.init('web')


@eel.expose
def rek_data(chislo1, chislo2):
	a = random.randint(int(chislo1), int(chislo2))
	print(a)



eel.start('index.html', size=(500,500))


При этом если пустые поля будут в интерфейсе, то будет ошибка, как мне проверить пустые поля или нет?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 2
SoreMix
@SoreMix Куратор тега Python
yellow
Поля должны быть не просто не пустые, а содержать именно числа. Я бы сделал так:

async function sendData() {
  let chislo1 = parseInt(document.querySelector('#chislo1').value);
  let chislo2 = parseInt(document.querySelector('#chislo2').value);

  if (!isNaN(chislo1) && !isNaN(chislo2)) {
    await eel.rek_data(chislo1, chislo2);
  } else { console.log('not int'); }
}
Ответ написан
Комментировать
iggor-markin
@iggor-markin
Python Developer
Со стороны скрипта проверку можно организовать, например, так:
def rek_data(number_1: int|float|str, number_2: int|float|str) -> int|str:
    # Если нет хотя бы одного числа - вернём ошибку
    if not number_1 or not number_2:
        return "Ошибка: отсутствует одно или два числа!"
        
    # Попробуем преобразовать в integer входные данные
    # Это можно сделать с типами int, float и str, если там будет число
    try:
        number_1 = int(number_1)
        number_2 = int(number_2)
    except TypeError:
        return "Ошибка: число 1 и число 2 должны быть целыми числами!"
    
    return random.randint(number_1, number_2)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
В CSS/JS можео проверять по наличию псевдокласса :empty
input:empty {
     border: 1px solid red;
}

Кроме того можно указать атрибут required для input/textarea/select
Если ты хочешь проверить всю форму, то триггеришь событие submit на форме
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы