检查表单输入的值,如果为空,则发出警报

时间:2014-11-09 17:40:12

标签: javascript jquery html forms

我正在进行测验,并且在单击“下一步”按钮时尝试检查空输入字段。如果有人不回答问题,那么我想发出警报并阻止他们进入下一个问题。

出于某种原因,使用我的代码,在第二个问题上,即使您在第二次尝试时输入响应,它也会给出“无响应”警报。我无法弄清楚原因。

以下是引发警报的代码部分:

$("button").click(function() {
  // check for empty input
  var inputVal = $.trim($(".question:visible input").val());
  console.log("The value of the input is: " + inputVal);
  if (inputVal.length == 0 || inputVal == "") {
    alert("Please enter a response.");
  } else {

  position++;
  quesNum = position + 1; 

  // hide previous question
  $(".question").hide();

  // show next question 
  if (position < totalQues) {
    $(".question").eq(position).show();
    $(".questionNumber").text("Question " + quesNum + " of " +
      totalQues);
  } else {

    // at the end of the questions, hide the questions and show the results
    $(".question, .questionNumber, button").hide();

    // calculate risk percentage
    calculatePerc();

    //show results template
    $(".results").show();
    showResults();
  }
}
}); // end button click function

这是我的JS小提琴:

http://jsfiddle.net/amykirst/mpjg2vbk/

如何让下拉警报正常工作,以便在第二次尝试时输入回复时让您继续操作?

2 个答案:

答案 0 :(得分:0)

您必须知道下拉列表(选择)不是输入标记是选择标记,您正在搜索输入,但下拉列表是选择而不是输入

答案 1 :(得分:0)

这种情况发生了,因为在第二个问题中,您没有使用input,它是一个select标记,可以使用简单的if语句找到: DEMO < /强>

if($(".question:visible input").length==0){
        inputVal=$(".question:visible select").val();
    }

建议:

我相信使用switch()而不是在代码中使用那么多if()语句会更容易,更有效。

<强>更新

发生radio问题是因为对于radio输入,您必须获取checked无线电的值。这是修复它,您需要在代码中添加另一个if()语句: DEMO

if($(".question:visible input").length==0){
        inputVal=$(".question:visible select").val();
    }
    else if($(".question:visible input[type=radio]").length>0){
        inputVal=$(".question:visible input[type=radio]:checked").val();
        if($(".question:visible input[type=radio]:checked").length==0) inputVal='';
    }

<强> UPDATE2:

您需要添加另一个if()声明: DEMO

if($(".question:visible input").length==0){
        inputVal=$(".question:visible select").val();
        if(inputVal==null) inputVal='';
    }
    else if($(".question:visible input[type=radio]").length>0){
        inputVal=$(".question:visible input[type=radio]:checked").val();
        if($(".question:visible input[type=radio]:checked").length==0) inputVal='';
    }