محمدرضا هلالی
2 سال پیش توسط محمدرضا هلالی مطرح شد
8 پاسخ

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

سلام من قصد دارم برای اینکه 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 در زبان های برنامه نویسی میکنه ؟

ثبت پرسش جدید
محمدرضا هلالی
تخصص : جونیور تازه کار
@mohammadrezah 2 سال پیش آپدیت شد
1

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


فرشید مرادی
تخصص : noob
@eniack 2 سال پیش مطرح شد
3

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


محمدرضا هلالی
تخصص : جونیور تازه کار
@mohammadrezah 2 سال پیش آپدیت شد
0

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


محمدرضا هلالی
تخصص : جونیور تازه کار
@mohammadrezah 2 سال پیش مطرح شد
میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 2 سال پیش مطرح شد
0

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


محمدرضا هلالی
تخصص : جونیور تازه کار
@mohammadrezah 2 سال پیش مطرح شد
0

ممنون میلاد جان حرفت درسته ولی من فقط 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>

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش آپدیت شد
1

من هم خیلی موافق این قضیه نیستم که انجام اون به این شکل بهتره یا نشونه حرفه ای تر بودنه که از 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 2 سال پیش آپدیت شد
0

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


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

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