Аналогичным образом сделать оповещение для пустого места?

Leny Lestter спросил: 28 апреля 2018 в 09:00 в: javascript

Если число не вводится, должно появляться сообщение с просьбой ввести хотя бы один номер.

Я хотел бы знать, есть ли другой способ сделать это? Если я введу значение для b(num2) или c(num3), и я не буду вводить a(num1), я получаю это всплывающее окно с конца

Javascript

function max(){
    var a=parseInt(document.getElementById("num1").value);
    var b=parseInt(document.getElementById("num2").value);
    var c=parseInt(document.getElementById("num3").value);
        if(a>b && a>c){
            alert(num1.value);
            }else if(b>a && b>c){
            alert(num2.value);
            }else if(c>a && c>b){
                alert(num3.value);
            }else if(a>b && a>c){
                alert(num1.value);
            }else if(a>b){
                alert(num1.value);
            }else if(a>c){
                alert(num1.value);
                return;
            }else if(b>a){
                alert(num2.value);
            }else if(b>c){
                alert(num2.value);
            }else if(c>a){
                alert(num3.value);
            }else if(c>b){
                alert(num3.value);
            }else if(a){
                alert(num1.value);
            }else if(b){
                alert(num2.value);
            }else if(c){
                alert(num3.value);
            }        if (document.getElementById("num1").value == "") {
                alert("Input at least one number");
            }
    }

HTML

<input type="text" id="num1" >a </br><br>
<input type="text" id="num2" >b </br><br>
<input type="text" id="num3" >c </br><br>
<button onclick="max()">"Click me !</button>

3 ответа

Arkej ответил: 28 апреля 2018 в 09:13
function max(){
var a=parseInt(document.getElementById("num1").value);
var b=parseInt(document.getElementById("num2").value);
var c=parseInt(document.getElementById("num3").value);

//exclude NaNs
nbs = [a,b,c].filter(nb => !isNaN(nb));

  if (isNaN(a) && isNaN(b) && isNaN(c)) {
    alert("Input at least one number");
  }
  else {
    console.log(Math.max(...nbs));
  }
}
<input type="text" id="num1" >a </br><br>
<input type="text" id="num2" >b </br><br>
<input type="text" id="num3" >c </br><br>
<button onclick="max()">"Click me !</button>
Leny Lestter ответил: 28 апреля 2018 в 09:20
ты восхитителен . ty 4 помогает ^^
Daniel Krom ответил: 28 апреля 2018 в 09:22
isNaN(a) && isNaN(b) && isNaN(c) Я думаю, что это должно быть ||, а не &&, по крайней мере, когда сообщение Input at least one number, а не"All numbers"
Arkej ответил: 28 апреля 2018 в 09:39
Используя ||, вам нужно будет ввести все три номера, чтобы избежать предупреждения, пока сообщение, как вы сказали, "Введите at least one number"
Priyal Pithadiya ответил: 28 апреля 2018 в 09:11

@Leny Lestter, вы можете использовать ниже функцию jquery

var empty = 0;
      $('input[type=text]').each(function(){
         if (this.value == "") {
             alert(' empty input' +$(this).attr("id"))
         } 
      })
DILEEP THOMAS ответил: 28 апреля 2018 в 09:23

Я надеюсь, что это решит вашу проблему.

function max(){
  // checking rhe three fields have value
  var inputs = $("body :input:not(:checkbox):not(:button)");
  var emptyfields = inputs.filter(function () {
    return $.trim($(this).val()).length == 0
     }).length == 0;
  if(emptyfields){
    // fields are not empty you can write code here
  }else{
    alert("Input fields can't be empty")
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="num1" >a </br><br>
<input type="text" id="num2" >b </br><br>
<input type="text" id="num3" >c </br><br>
<button onclick="max()">"Click me !</button>