الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة مع validation كود

بدأه SalehZubir في 17 أكتوبر 2010 · 9 رد · 1,068 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

قمت بكتابة صفحة تحتوي على نموذج أدخال أسم المستخدم وكلمة المرور وقمت بكتابة كود جافاسكربت يوقم بالتحقق عند الضغط على الزر Submit من ان خانة اسم المستخدم وكلمة المرور غير فارغة والصفحة تعمل بشكل جيد من ناحية النتائج ولكن المشكلة في الية العمل حيث توجد مشكلتان

1- اريد أن تكون الرسائل التي تفيد المستخدم بأنه لم يدخل أسم المستخدم وكلمة المرور تظهر مباشرة في نفس الصفحة مع نموذج الأدخال

2-اريد ان ان امنع المستخدم من أن يدخل أية ارقام في حقل اسم المستخدم

هذا هو الكود الذي قمت بكتابته

<html>
<head>
<title>Login</title>
<script type="text/javascript">
function validate(form)
{
 var userName = form.Username.value;
 var password = form.Password.value;

 if (userName.length === 0)
 {
  document.write("Please Enter User Name");
  return false;
 }

 if (password.length === 0)
 {
  document.write("Please Enter Password");
  return false;
 }
 return true;
}
</script>
</head>
<body>
<h1>Login Form</h1>
<form method="post" action="" onsubmit="return validate(this);">

 Username: <input type="text" name="Username" ><br/>
 Password: <input type="password" name="Password"/><br/>
 <input type="submit" value="Submit">
 <input type="reset" value="Reset Form">

<script type="text/javascript">

</script>

</form>
</body>
</html>

الملف كامل Login_Val.html

1
#2

السلام عليكم ورحمة الله

أخي استخدم alert بدل من document.write لتحقيق الطلب الأول

و أضف هذا الشرط لدراسة فيما إذا تم ادخال ارقام في حقل :

if(!isNaN(userName)) {
  alert("Username shouldn't be numbers");
  return false;
 }

بتوفيق الله..

Everything will be fine when we TALK LESS, DO MORE


#3

جزاك الله خير أخي محمد على الرد

انا اعلم انا الـ alert تؤدي الغرض ولكن لا أريد أستخدامها والسبب هو لأنني أريد ان تظهر الرسائل على نفس الصفحة بدون alert box كمى في كثير من المواقع

انا لا اعلم ما اذا كان ما احاول القيام يتعدى حدود الـ Java Script ويدخل في نطاق jQuery

ارجو ان ترشدوني وتساعدني في حل هذه المسئلة

#4

لا بأس أخي

استخدم هذه الطريقة

<html>
<head>
<title>Login</title>
<script type="text/javascript">
function validate(form)
{
 var userName = form.Username.value;
 var password = form.Password.value;

 if (userName.length === 0)
 {
  document.getElementById("msg").innerHTML = "Please Enter User Name";
  return false;
 }
 if(!isNaN(userName)) {
  document.getElementById("msg").innerHTML = "Username shouldn't be numbers";
  return false;
 }
 if (password.length === 0)
 {
  document.getElementById("msg").innerHTML = "Please Enter Password";
  return false;
 }
 return true;
}
</script>
</head>
<body>
<div id="msg"></div>
<h1>Login Form</h1>
<form method="post" action="" onsubmit="return validate(this);">

 Username: <input type="text" name="Username" ><br/>
 Password: <input type="password" name="Password"/><br/>
 <input type="submit" value="Submit">
 <input type="reset" value="Reset Form">

<script type="text/javascript">

</script>

</form>
</body>
</html>

حدد المكان و الخصائص التي تريدها للـ Div

بالتوفيق أخي الكريم

1

Everything will be fine when we TALK LESS, DO MORE


#5

نعم هذا ماكنت أريده

وفقك الله اخي محمد لما يحبه ويرضاه

#6

أريد أن تبقى رسالة الخطأ موجودة حتى يتم تطابق كلمتي السر، أستعمل هذا الكود لكنه لا يعمل كما أريد:

<html>
<head>
  <style>
  p { color:red; margin:4px; }
  b { color:blue; }
  </style>
  <script type="text/javascript">
   function PasswordMatch(pass, repass, field) 
    {
     if(pass.value != repass.value)
      field.innerHTML='Password does not match!';
    }	
  </script>
</head>
<body>
<form method="post" name="form1" id="form-password" action="">
  <fieldset>
    <label>Password:</label>
    <input type="password" name="password" id="password" value="" size="32" /><br>
    <label>Re-Enter Password:</label>
    <input type="password" name="repassword" id="repassword" size="32" onkeyup="PasswordMatch(password, repassword, error)"/><span id="error"></span>
    <br>
    <input type="submit" value="Submit" id="submit" >
  </fieldset>
</form>
</body>
</html>

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#7

بالطبع لن تختفي وحدها :D

  <script type="text/javascript">
   function PasswordMatch(pass, repass, field) 
    {
     if(pass.value != repass.value)
      field.innerHTML='Password does not match!';
	 else
	  field.innerHTML='';
    }   
  </script>
1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

كنت أعتقد أنها ستختفي وحدها، يعني نويت :D.

بقية مشكلة صغيرة، و هي أن المستخدم لو بدأ من الحقل الثاني فالرسالة ستبقى كما هي، هل هناك حل.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#9
SIFE كتب:

بقية مشكلة صغيرة، و هي أن المستخدم لو بدأ من الحقل الثاني فالرسالة ستبقى كما هي، هل هناك حل.

ما رأيك بتكرار الحدث onkeyup للـ input الثاني أيضاً؟ :D

لازمك نوم ;)

<html>
<head>
  <style>
  p { color:red; margin:4px; }
  b { color:blue; }
  </style>
  <script type="text/javascript">
   function passValidate()
   {
	 PasswordMatch(password, repassword, error);
   }
   function PasswordMatch(pass, repass, field) 
    {
     if(pass.value != repass.value)
      field.innerHTML='Password does not match!';
	 else
	  field.innerHTML='';
    }   
  </script>
</head>
<body>
<form method="post" name="form1" id="form-password" action="">
  <fieldset>
    <label>Password:</label>
    <input type="password" name="password" id="password" value="" size="32" onkeyup="passValidate()"/><br>
    <label>Re-Enter Password:</label>
    <input type="password" name="repassword" id="repassword" size="32" onkeyup="passValidate()"/><span id="error"></span>
    <br>
    <input type="submit" value="Submit" id="submit" >
  </fieldset>
</form>
</body>
</html>
1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10

و كأنك تعرف أني لا أنام إلا قليلا :D.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

مواضيع مشابهة