Sobes.tech
Middle

INN ველი (10 ან 12 ციფრი). Blur-ის შემდეგ შეცდომა გამოიტანეთ. გაგზავნის ღილაკი დისაბლდება, სანამ ფორმა არ არის ვალიდური.

sobes.tech AI

პასუხი AI-სგან

10 ან 12 ციფრის შემოწმებით, შეცდომის ჩვენება blur შემდეგ და "გაგზავნის" ღილაკის ბლოკირება სანამ ფორმა არ არის ვალიდური, ასე შეიძლება გაკეთდეს (React-ში):

import React, { useState } from 'react';

function InnForm() {
  const [inn, setInn] = useState('');
  const [touched, setTouched] = useState(false);

  const isValidInn = (value) => {
    return /^\d{10}$/.test(value) || /^\d{12}$/.test(value);
  };

  const handleBlur = () => {
    setTouched(true);
  };

  const isValid = isValidInn(inn);

  return (
    <form>
      <label>
        INN:
        <input
          type="text"
          value={inn}
          onChange={e => setInn(e.target.value)}
          onBlur={handleBlur}
          maxLength={12}
        />
      </label>
      {touched && !isValid && (
        <div style={{ color: 'red' }}>INN უნდა შეიცავდეს 10 ან 12 ციფრს</div>
      )}
      <button type="submit" disabled={!isValid}>გაგზავნა</button>
    </form>
  );
}

export default InnForm;
```\n\nაქ:\n- ვალიდაცია ამოწმებს, რომ INN შეიცავს ზუსტად 10 ან 12 ციფრს.\n- შეცდომა გამოჩნდება მხოლოდ მაშინ, როდესაც ველი დაკარგავს ფოკუსს (`blur`).\n- "გაგზავნა" ღილაკი გამორთულია, სანამ INN არ არის ვალიდური.