راکت

احراز هویت input بدون js

8 پاسخ

سلام من قصد دارم برای اینکه css حرفه ای تر یاد بگیرم توی این پروژه از js برای احراز هویت استفاده نکنم منطقی که میخوام برم جلو این شکلی هست
لیست تسک ها
تلفن با یکی از عبارات زیر شروع شود و در ادامه حاوی ۹ رقم باشد
+989
00989
09

رمز عبور باید حداقل حاوی یک حرف کوچک انگلیسی، یک حرف بزرگ انگلیسی، یک رقم و یکی از کاراکترهای !@#$%^&* باشد
جابه‌جایی smooth بین بخش‌های register و
login

 <main>
            <form id="register">
                <label>
                    <span>Username</span>
                    <img src="./icons/user.svg" alt="" />
                    <input type= "text" minlength = "3" maxlength = "32"  required/>
                </label>
                <label>
                    <span>Email</span>
                    <img src="./icons/email.svg" alt="" />
                    <input type= "email"   value = "default@example.com" required/><!--pattern="[a-z]{4,8}" size="45"-->
                    <span class="validity"></span>
                </label>
                <label>
                    <span>Phone</span>
                    <img src="./icons/phone.svg" alt="" />
                    <input type = "tel"  maxlength="13" />
                    <span class="validity-tel"></span>
                </label>
                <label>
                    <span>Password</span>
                    <img src="./icons/password.svg" alt="" />
                    <input type = "password" minlength = "8" maxlength = "32" />
                    <span class="validity-pass"></span>
                </label>
                <button type = "submit">Register</button>
                <p>
                    Already have an account?
                    <a href = "#" id = "register" style="color: white;">Log in</a><!-- if user click this link jump page load register menu -->
                </p>
            </form>
            <section>
                <img src="./illustrations/gangster.svg" alt="" />
            </section>
            <form id="login"> <!-- hidden default and show login when user enter Register button <!-->
                <label>
                    <span>Username</span>
                    <img src="./icons/user.svg" alt="" />
                    <input />
                </label>
                <label>
                    <span>Password</span>
                    <img src="./icons/password.svg" alt="" />
                    <input />
                </label>
                <button>Login</button>
                <p>
                    Don't have an account?
                    <a href = "#" id = "register" style="color: white;">Register</a> <!-- if user click this link jump page load login menu -->
                </p>
            </form>
        </main>
    </body>
</html>
html{
  scroll-behavior: smooth;!important;
}
/*
validity input tag 
*/

.validity::after{
  position: absolute;
  content: '✖';
  padding-left: 7px;
  top: 0.5rem;
  left: -6rem;
  font-size: 2em;
}
.validity-tel::after{
  position: absolute;
  content: '✖';
  padding-left: 7px;
  top: 0.5rem;
  left: -6rem;
  font-size: 2em;
}
.validity-pass::after{
  position: absolute;
  content: '✖';
  padding-left: 7px;
  top: 0.40rem;
  left: -6rem;
  font-size: 2em;
}
در آخر راجب pattren میشه گفت کار re در زبان های برنامه نویسی میکنه ؟
ثبت پرسش جدید

پاسخ‌ها

8
محمدرضا هلالی
محمدرضا هلالی
@mohammadrezah

تخصص: جونیور تازه کار

همان طور که در تصویر می بینید میخوام کاری کنم کاربر اگه شماره ایران زد اون span تیک بخوره که فکر کنم باید after برای تیک خوردن اش می نوشتم 🙄
و وقتی روی لاگین میزنه توی همین صفحه باکس لاگین باز بشه و دوباره روی button ثبت نام که میزنه smoth بشه به ریجستری با js راحته ولی اصلا با css درک نمیکنم !
 تصویر

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

سلام وقت بخیر ، شما برای حرفه ای شدن در css باید انواع سایت ها رو پیاده سازی کنید و همچنین فریم ورک ها و کتابخانه های css رو یاد بگیرید . css اصلا برای این کار نیست و کار غیر منطقی هستش خودتونو اذیت نکنید!!!!!

شاید پاسخ شما همین‌جا باشد

محمدرضا هلالی
محمدرضا هلالی
@mohammadrezah

تخصص: جونیور تازه کار

متوجه نشدم! وقتی با تگ های جدید html5 مثل patterns و سایر اتربیوت ها میشه این کار انجام داد بهتره از همین روش رفت smooth هم که ربطی به js نداره این اسم اش اذیت شدن نیست روش های جدید html هست اش!

محمدرضا هلالی
محمدرضا هلالی
@mohammadrezah

تخصص: جونیور تازه کار

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

سلام خسته نباشید
به نظرم css تنها برای اینکه بخواید استایل ارور رو نشون بده به درد بخوره و برای validate کردن شما باید از بک اند استفاده کنید البته js هم میشه ولی خب js امنیتش برای validate پایینه

محمدرضا هلالی
محمدرضا هلالی
@mohammadrezah

تخصص: جونیور تازه کار

ممنون میلاد جان حرفت درسته ولی من فقط js اونم مقدماتی بلدم ! ولی راجب اتربیوت های مثل pattren توی input توضیح میدی بهم چون باهاش کار کردم دقیقا خصوصیت re داخل html میاره با همین روش میخواستم بگم شماره ایران وارد بشه و اگه شماره ایران نبود استایل عوض بشه البته باید type :tel باشه حتما

<form>
  <div>
    <label for="telNo">Enter a telephone number (in the form xxx-xxx-xxxx): </label>
    <input id="telNo" name="telNo" type="tel" required
           pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}">
    <span class="validity"></span>
  </div>
  <div>
    <button>Submit</button>
  </div>
</form>

ممنون میشم بهم بگید این داستان پترن چیه؟

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

من هم خیلی موافق این قضیه نیستم که انجام اون به این شکل بهتره یا نشونه حرفه ای تر بودنه که از JS استفاده نکنیم و فقط با html و css پیاده سازی کنیم.

ولی در پاسخ به سوالتون شما بعد از اینکه RegEx مورد نظرتون رو بعنوان مشخصه pattern اینپوت نوشتید با استفاده از selector زیر می تونید حالت غیرمعتبر (invalid) رو هدف بگیرید و استایل هاتون رو اعمال کنید. مثلا علامت ضربدر از حالت display:none در بیاد یا رنگ border ش عوش بشه یا متنی نمایش داده بشه و ....

input:invalid {
    border: red solid 3px;
}

توضیحات بیشترش رو هم اینجا می‌تونید مطالعه کنید:
https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern

محمدرضا هلالی
محمدرضا هلالی
@mohammadrezah

تخصص: جونیور تازه کار

خیلی ممنون فقط این سینتکس pattern متوجه اصلا نمیشم میدونم اشاره به regex داره ولی مثال های که زده برام خیلی سخته میشه من الان برای پسورد میخوام اینها فیلتر کنم
!@#$%^&*
و برای شماره تلفن هم با mexlength کاری کردم که کاربر تا 13 عدد بتونه بزنه میتونم با همین روش کاربر مجاز به 09 یا +98 در ابتدا بکنم؟

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام