<!DOCTYPE html>
<html lang="fa">
<head>
  <meta charset="UTF-8">
  <title>محاسبه مهریه به نرخ روز</title>
  <style>
    body {
      font-family: Tahoma, sans-serif;
      direction: rtl;
      background-color: #f4f4f4;
      padding: 30px;
    }

    .container {
      background-color: white;
      max-width: 500px;
      margin: auto;
      padding: 25px;
      border-radius: 10px;
      box-shadow: 0 0 10px #ccc;
    }

    h2 {
      color: #4a148c;
      margin-bottom: 20px;
    }

    label, select, input {
      display: block;
      width: 100%;
      margin-bottom: 10px;
      font-size: 16px;
    }

    .result-box {
      background-color: #e0f7fa;
      padding: 15px;
      border-radius: 8px;
      border: 1px solid #26c6da;
      margin-top: 20px;
      color: #006064;
    }

    .amount-text {
      font-size: 14px;
      color: #666;
      margin-bottom: 10px;
    }

    .error {
      background-color: #ffecec;
      border: 1px solid #f44336;
      color: #d32f2f;
      padding: 10px;
      border-radius: 8px;
      display: none;
      margin-top: 10px;
    }
  </style>
</head>
<body>
  <div class="container">
    <h2>محاسبه مهریه به نرخ روز</h2>
    
    <label>مبلغ مهریه (ریال):</label>
    <input type="text" id="amount" placeholder="مثلاً 50000000">
    <div class="amount-text" id="amount_words"></div>

    <label>سال عقد:</label>
    <select id="start_year">
      <option value="">انتخاب کنید</option>
      <script>
        for (let i = 1390; i <= 1404; i++) {
          document.write(`<option value="${i}">${i}</option>`);
        }
      </script>
    </select>

    <label>سال محاسبه:</label>
    <select id="end_year">
      <option value="">انتخاب کنید</option>
      <script>
        for (let i = 1390; i <= 1404; i++) {
          const selected = i === 1404 ? 'selected' : '';
          document.write(`<option value="${i}" ${selected}>${i}</option>`);
        }
      </script>
    </select>

    <div class="result-box" id="result" style="display: none;"></div>
    <div class="error" id="errorBox">لطفاً مبلغ صحیح وارد کنید.</div>
  </div>

  <script>
    // نسخه ساده‌شده از num2persian فقط برای اعداد ریال/تومان
    Number.prototype.num2persian = function () {
      const e = ["صفر","یک","دو","سه","چهار","پنج","شش","هفت","هشت","نه","ده","یازده","دوازده","سیزده","چهارده","پانزده","شانزده","هفده","هجده","نوزده","بیست"];
      const t = ["", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود"];
      const r = ["", "صد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد"];
      const i = ["", "هزار", "میلیون", "میلیارد", "بیلیون"];
      let o = this.toString().replace(/[^0-9]/g, '');
      if (o === '0') return e[0];

      const chunk = (str) => str.match(/.{1,3}(?=(.{3})*$)/g);
      const threeDigit = (num) => {
        let word = "";
        if (num === "000") return "";
        if (num.length < 3) num = ("000" + num).slice(-3);
        let [a,b,c] = num.split("").map(Number);
        if (a > 0) word += r[a];
        if (b > 1) {
          if (word) word += " و ";
          word += t[b];
          if (c > 0) word += " و " + e[c];
        } else if (b === 1 || c > 0) {
          if (word) word += " و ";
          word += e[10 + c];
        }
        return word;
      };

      const parts = chunk(o);
      return parts.map((p, idx) => {
        let part = threeDigit(p);
        if (part) return part + " " + i[parts.length - idx - 1];
        return "";
      }).filter(Boolean).join(" و ");
    };
  </script>

  <script>
    const index = {
      1390: 70, 1391: 80, 1392: 90, 1393: 95, 1394: 98,
      1395: 100, 1396: 108, 1397: 135, 1398: 180, 1399: 220,
      1400: 290, 1401: 370, 1402: 460, 1403: 520, 1404: 580
    };

    const amountInput = document.getElementById("amount");
    const amountWords = document.getElementById("amount_words");
    const startYear = document.getElementById("start_year");
    const endYear = document.getElementById("end_year");
    const resultBox = document.getElementById("result");
    const errorBox = document.getElementById("errorBox");

    function formatNumberInput() {
      let raw = amountInput.value.replace(/,/g, '');
      if (!/^\d*$/.test(raw)) return;

      amountInput.value = Number(raw).toLocaleString('fa-IR');
      if (raw) {
        amountWords.innerText = `به حروف: ${Number(raw).num2persian()} ریال`;
      } else {
        amountWords.innerText = '';
      }

      calculate();
    }

    function calculate() {
      const raw = amountInput.value.replace(/,/g, '');
      const start = parseInt(startYear.value);
      const end = parseInt(endYear.value);

      if (!raw || isNaN(raw) || !start || !end) {
        resultBox.style.display = 'none';
        errorBox.style.display = raw ? 'none' : 'block';
        return;
      }

      errorBox.style.display = 'none';

      const startIndex = index[start] ?? 100;
      const endIndex = index[end] ?? 580;

      const adjusted = parseFloat(raw) * (endIndex / startIndex);
      const rial = adjusted.toFixed(0).toLocaleString('fa-IR') + ' ریال';
      const toman = (adjusted / 10).toFixed(0).toLocaleString('fa-IR') + ' تومان';

      const rialWords = Number(adjusted.toFixed(0)).num2persian() + ' ریال';
      const tomanWords = Number((adjusted / 10).toFixed(0)).num2persian() + ' تومان';

      resultBox.innerHTML = `
        <p>ارزش مهریه به نرخ روز:</p>
        <strong>${rial}</strong><br>
        <strong>${toman}</strong>
        <p>به حروف:<br>${rialWords}<br>(${tomanWords})</p>
      `;
      resultBox.style.display = 'block';
    }

    amountInput.addEventListener("input", formatNumberInput);
    startYear.addEventListener("change", calculate);
    endYear.addEventListener("change", calculate);
  </script>
</body>
</html>


ببین این رو بهم دادی و داخل فایل مورد نظر گذاشتم و فانکشنش رو هم به فایل فانکشن اضافه کردم و شورت کد رو توی صفحه مورد نظر گذاشتم و فرم رو نمایش میده، مشکل اینجاست که کارکرد فرم مشکل داره
وقتی مبلغ رو داخل فیلد مبلغ مهریه وارد می کنم هیچ اتفاقی نمیوفته