Edit in JSFiddle

var myForm = document.getElementById('myForm');
myForm.addEventListener("submit", submitFunction, false);
myForm.noValidate = true; // 자동검사가 꺼져있어야 합니다.

function submitFunction(event) {
  event.preventDefault(); // 전송하지 않기 위해 기본기능을 끔
  var msg;
  var num = myForm.num;
  var output = document.getElementById("output");
  output.innerHTML = "";

  if (!num.validity.valid) { // 유효하지 않으면
    if (num.validity.rangeOverflow) { // max값 보다 크다면 처리
      msg = "300보다 커야 함" // 오류에 따라 따로 메세지를 만들 수 있음
    } else if (num.validity.rangeUnderflow) { // min값 보다 크다면 처리
      msg = "100보다 커야 함" // 이렇게 처리도 가능함
    } else {
      msg = num.validationMessage; // 기본 메시지로 처리
    }
  } else {
    msg = "값이 유효함";
  }
  output.innerHTML = msg;
}
<div>
  <form id="myForm">
    <input name="num" type="number" min="100" max="300" required />
    <input type="submit" value="OK" />
  </form>
</div>
<p> 100 ~ 300 사이의 값을 입력하세요.</p>

<p id="output"></p>