0

I'm designing a website and I need the below function to stop when one Input value is missing and display the error message. My HTML code for the form:

<form action="http://localhost/qurantest/" method="get" target="_blank" id="my-form">
  <input type="text" name="reference-number" id="reference-number" value="" class="6u 12u$(xsmall)" placeholder="enter chapter"/>
  <input type="text" name="reference-number" id="reference-number2" value="" placeholder="enter verse"/>
  <br>
  <input type="submit" value="GO" class="button big special" />
</form>

The JavaScript function is;

<script type="text/javascript">
  var form       = document.querySelector('#my-form'),
      text_field = document.querySelector('#reference-number');
      text_field2 = document.querySelector('#reference-number2');
      
  function submitHandler(){
    // build the new url and open a new window
    var url = form.action + text_field.value + '/' + text_field2.value;
    window.open(url);

    // prevent the form from being submitted because we already 
    // called the request in a new window
    return false;
  }

  // attach custom submit handler
  form.onsubmit = submitHandler;
</script>

What I want is: To stop the function and display an error message when 1 of the two "inputs" (text_fields) is empty. Also, I want to assign maximum values for each input. (In my case I want the 1st input field to contain only numbers between 1-114 and the 2nd input field to contain only numbers from 2-286), and this specific function opens in a new window as the above code suggests, I want the function to open in the current window itself. How can I do this is JavaScript? I'm new to JS so any help would be appreciated. Thanks in Advance!!

2 Answers 2

1

Check this one.

<script type="text/javascript">
              var form = document.querySelector('#my-form');
              var text_field = document.querySelector('#reference-number');
              var text_field2 = document.querySelector('#reference-number2');
              
          function submitHandler(){
             if(!text_field.value || !text_field2.value) {
              console.log("error message here");
              return;
             }
                    var url = `${form.action}${text_field.value}/${text_field2.value}`;
            window.open(url);
          return;
          }
          form.onsubmit = submitHandler;
        </script>
Sign up to request clarification or add additional context in comments.

1 Comment

Baarakallahu Feekum.
0

Try this

<script type="text/javascript">
      var form       = document.querySelector('#my-form'),
          text_field = document.querySelector('#reference-number');
          text_field2 = document.querySelector('#reference-number2');
          
      function submitHandler(){
         // checks values
         if(text_field.value == "" || text_field2.value == "") {
          alert("Message");
          return false;
         }
        // build the new url and open a new window
        var url = form.action + text_field.value + '/' + text_field2.value;
        window.open(url);
    
        // prevent the form from being submitted because we already 
        // called the request in a new window
        return false;
      }
    
      // attach custom submit handler
      form.onsubmit = submitHandler;
    </script>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.