খালি ইনপুট ক্ষেত্রে জাভাস্ক্রিপ্ট বৈধতা


100

আমার কাছে এই ইনপুট ক্ষেত্রটি <input name="question"/>জমা দিন যখন জমা দিন বাটন ক্লিক করার সময় আমি ইস্পটি ফাংশনটিতে কল করতে চাই।

আমি নীচের কোডটি চেষ্টা করেছিলাম কিন্তু কার্যকর হয়নি। কোন পরামর্শ?

<html>

<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=unicode" />
  <meta content="CoffeeCup HTML Editor (www.coffeecup.com)" name="generator" />
</head>

<body>


  <script language="Javascript">
    function IsEmpty() {

      if (document.form.question.value == "") {
        alert("empty");
      }
      return;
    }
  </script>
  Question: <input name="question" /> <br/>

  <input id="insert" onclick="IsEmpty();" type="submit" value="Add Question" />

</body>

</html>


আপনি একটি অবৈধ উত্তর গ্রহণ করেছেন । নাল পরীক্ষা করা অদ্ভুত কারণ একটি ইনপুট (বা টেক্সারিয়া) সর্বদা একটি স্ট্রিং দেয় returns এছাড়াও, আপনার ইনলাইন জাভাস্ক্রিপ্ট ব্যবহার করা উচিত নয়। এছাড়াও আপনি অন্ধভাবে ব্যবহার করা উচিত নয় return false... ইত্যাদি ইত্যাদি
Roko সি Buljan

উত্তর:


124

<script type="text/javascript">
  function validateForm() {
    var a = document.forms["Form"]["answer_a"].value;
    var b = document.forms["Form"]["answer_b"].value;
    var c = document.forms["Form"]["answer_c"].value;
    var d = document.forms["Form"]["answer_d"].value;
    if (a == null || a == "", b == null || b == "", c == null || c == "", d == null || d == "") {
      alert("Please Fill All Required Field");
      return false;
    }
  }
</script>

<form method="post" name="Form" onsubmit="return validateForm()" action="">
  <textarea cols="30" rows="2" name="answer_a" id="a"></textarea>
  <textarea cols="30" rows="2" name="answer_b" id="b"></textarea>
  <textarea cols="30" rows="2" name="answer_c" id="c"></textarea>
  <textarea cols="30" rows="2" name="answer_d" id="d"></textarea>
</form>


4
'onsubmit = "রিটার্ন বৈধতা ()"' পরিবর্তন করা দরকার। বৈধতা ফাংশনটির নাম নয়। এটি 'onsubmit = "রিটার্ন
ভ্যালিডফর্ম

4
উত্তর এবং ওপির সন্দেহ ব্যাখ্যা করা ভাল হবে।
বিশাল

7
এটি স্বীকৃত আসলে অবৈধ। ifবিবৃতিতে কমাগুলি কেবলমাত্র শেষ চেকটি ফেরত দেবে: stackoverflow.com/a/5348007/713874
বিং

36

কাজের উদাহরণটি এখানে দেখুন


আপনি প্রয়োজনীয় <form>উপাদানটি হারিয়েছেন । আপনার কোডটি কেমন হওয়া উচিত তা এখানে:

function IsEmpty() {
  if (document.forms['frm'].question.value === "") {
    alert("empty");
    return false;
  }
  return true;
}
<form name="frm">
  Question: <input name="question" /> <br />
  <input id="insert" onclick="return IsEmpty();" type="submit" value="Add Question" />
</form>


ফর্মের সমস্ত ক্ষেত্রের জন্য এটি করার কোনও উপায় আছে কি?
স্পেরিসাইকেল

35

একটি ইনপুট ক্ষেত্রে সাদা স্থান থাকতে পারে , আমরা এটি প্রতিরোধ করতে চাই। String.prototype.trim ()
ব্যবহার করুন :

function isEmpty(str) {
    return !str.trim().length;
}

উদাহরণ:

const isEmpty = str => !str.trim().length;

document.getElementById("name").addEventListener("input", function() {
  if( isEmpty(this.value) ) {
    console.log( "NAME is invalid (Empty)" )
  } else {
    console.log( `NAME value is: ${this.value}` );
  }
});
<input id="name" type="text">


4
নাল এবং "" ছাড়াও, আমার কোডটি আমি এই টুকরোটিও হারিয়েছি। এটা আমার জন্য কাজ করেছে। ধন্যবাদ রোকো।
পেড্রো সোসা

17

আমি জাভাস্ক্রিপ্ট অক্ষম করার ক্ষেত্রে প্রয়োজনীয় বৈশিষ্ট্য যুক্ত করতে চাই:

<input type="text" id="textbox" required/>

এটি সমস্ত আধুনিক ব্রাউজারে কাজ করে।



7

আপনার ইনপুট উপাদানটিতে একটি আইডি "প্রশ্ন" যুক্ত করুন এবং তারপরে এটি চেষ্টা করুন:

   if( document.getElementById('question').value === '' ){
      alert('empty');
    }

আপনার বর্তমান কোডটি কাজ না করার কারণ হ'ল আপনার সেখানে কোনও ফর্ম ট্যাগ নেই। এছাড়াও, "নাম" ব্যবহার করে অনুসন্ধানগুলি হ্রাস করার প্রস্তাব দেওয়া হয় না।

এই পোস্টে @ পল ডিক্সনের উত্তর দেখুন: <a> অ্যাঙ্কর ট্যাগগুলির জন্য 'নাম' গুণাবলী কি পুরানো বলে বিবেচিত হবে?


1
if(document.getElementById("question").value == "")
{
    alert("empty")
}

4
... <input>উপাদানটিতে কোনও "আইডি" গুণ নেই ; এটি কেবলমাত্র আইইতে কাজ করবে কারণ আইই ভাঙ্গা।
পয়েন্টি

দুঃখিত, আমি ভেবেছিলাম একটি আইডি ছিল, ডকুমেন্ট.সেটমেন্টসাইবাইনেম ("প্রশ্ন") [0]। মূল্যায়ন করুন, বা কেবল একটি আইডি যোগ করুন উপাদানটি
কেনেথ জে

1

ইনপুট উপাদানটিতে কেবল একটি আইডি ট্যাগ যুক্ত করুন ... যেমন:

এবং আপনার জাভাস্ক্রিপ্টে উপাদানটির মান পরীক্ষা করুন:

ডকুমেন্ট.সেটমেন্টবেইআইডি ("প্রশ্ন") value

ওহ, ফায়ারফক্স / ফায়ারব্যাগ পান get এটি জাভাস্ক্রিপ্ট করার একমাত্র উপায়।


0

নীচের আমার সমাধান es6 হয় কারণ আমি ব্যবহার করা constযদি আপনি পছন্দ es5 আপনি সব প্রতিস্থাপন করতে পারেন constসঙ্গে var

const str = "       Hello World!        ";
// const str = "                     ";

checkForWhiteSpaces(str);

function checkForWhiteSpaces(args) {
    const trimmedString = args.trim().length;
    console.log(checkStringLength(trimmedString))     
    return checkStringLength(trimmedString)        
}

// If the browser doesn't support the trim function
// you can make use of the regular expression below

checkForWhiteSpaces2(str);

function checkForWhiteSpaces2(args) {
    const trimmedString = args.replace(/^\s+|\s+$/gm, '').length;
    console.log(checkStringLength(trimmedString))     
    return checkStringLength(trimmedString)
}

function checkStringLength(args) {
    return args > 0 ? "not empty" : "empty string";
}


0

<pre>
       <form name="myform" action="saveNew" method="post" enctype="multipart/form-data">
           <input type="text"   id="name"   name="name" /> 
           <input type="submit"/>
       </form>
    </pre>

<script language="JavaScript" type="text/javascript">
  var frmvalidator = new Validator("myform");
  frmvalidator.EnableFocusOnError(false);
  frmvalidator.EnableMsgsTogether();
  frmvalidator.addValidation("name", "req", "Plese Enter Name");
</script>

উপরের কোডটি ব্যবহার করার আগে আপনাকে জেন_ডিয়োলেটরভ 31.জেএস ফাইল যুক্ত করতে হবে


0

সমস্ত পদ্ধতির সংমিশ্রণে আমরা এরকম কিছু করতে পারি:

const checkEmpty = document.querySelector('#checkIt');
checkEmpty.addEventListener('input', function () {
  if (checkEmpty.value && // if exist AND
    checkEmpty.value.length > 0 && // if value have one charecter at least
    checkEmpty.value.trim().length > 0 // if value is not just spaces
  ) 
  { console.log('value is:    '+checkEmpty.value);}
  else {console.log('No value'); 
  }
});
<input type="text" id="checkIt" required />

নোট করুন যে আপনি যদি সত্যই মানগুলি পরীক্ষা করতে চান তবে আপনার সার্ভারে এটি করা উচিত, তবে এটি এই প্রশ্নের সুযোগের বাইরে নয়।


0

আপনি প্রতিটি ইনপুট জমা দেওয়ার পরে লুপ করতে পারেন এবং খালি কিনা তা পরীক্ষা করতে পারেন

let form = document.getElementById('yourform');

form.addEventListener("submit", function(e){ // event into anonymous function
  let ver = true;
  e.preventDefault(); //Prevent submit event from refreshing the page

  e.target.forEach(input => { // input is just a variable name, e.target is the form element
     if(input.length < 1){ // here you're looping through each input of the form and checking its length
         ver = false;
     }
  });

  if(!ver){
      return false;
  }else{
     //continue what you were doing :)
  } 
})

0

<script type="text/javascript">
  function validateForm() {
    var a = document.forms["Form"]["answer_a"].value;
    var b = document.forms["Form"]["answer_b"].value;
    var c = document.forms["Form"]["answer_c"].value;
    var d = document.forms["Form"]["answer_d"].value;
    if (a == null || a == "", b == null || b == "", c == null || c == "", d == null || d == "") {
      alert("Please Fill All Required Field");
      return false;
    }
  }
</script>

<form method="post" name="Form" onsubmit="return validateForm()" action="">
  <textarea cols="30" rows="2" name="answer_a" id="a"></textarea>
  <textarea cols="30" rows="2" name="answer_b" id="b"></textarea>
  <textarea cols="30" rows="2" name="answer_c" id="c"></textarea>
  <textarea cols="30" rows="2" name="answer_d" id="d"></textarea>
</form>


হাই, যখন আপনি একটি সমাধান সরবরাহ করছেন, আপনার সমাধান সমস্যার সমাধানের কারণটি ভবিষ্যতের পাঠকদের সহায়তা করতে পারে তার কারণ প্রদান করা দুর্দান্ত।
এহসান মাহমুদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.