javascript中的空输入字段应该提醒

时间:2016-03-18 08:33:28

标签: javascript jquery

我有这段代码,但它并没有告诉用户输入字段何时为空。有人能看出什么问题吗?

$('#age_validation_btn').click(function() {
  var age = $('#age_validation_input').val(); 
  if (parseInt(age) == '') {
    alert('Please type in something');

  } else {
    if (new Date().getFullYear() - parseInt(age) >= 18) {
      (function() {
        var link = document.getElementById('btn-close-modal');
        link.click();
      })();
    } else {
      alert('younger then 18');
    }

  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="age_validation_input" />
<input type="button" id="age_validation_btn" value="valid "/>

<input maxlength="4" id="age_validation_input" size="33" align="middle" style="background-color: rgba(191, 186, 168, 0.8); border:none; height:90px; width:380px; color:#3d3b33; padding:15px; font-size:70px; font-weight:bold;"></font> 
 <br /><br />
<input type="button" id="age_validation_btn" style="background-color: rgba(99, 95, 82, 0.8); border:none; height:65px; width:410px; color:#c4bda4; font-size:40px; font-weight:bold;" value="OK" />

希望你能提供帮助: - )

4 个答案:

答案 0 :(得分:0)

这是因为parseInt("")返回NaN而不是您期望的空字符串''。查看parseInt文档here

答案 1 :(得分:0)

我不确定但是尝试删除parseInt

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$('#age_validation_btn').click(function() {
  var age = $('#age_validation_input').val();
  
	if (age == '') {
		
		alert('Please type in something');
		
	} else {
  
  if (new Date().getFullYear() - age >= 18) {
    (function() {
                var link = document.getElementById('btn-close-modal');
                link.click();
            })(); 
  }
  else {
    alert('younger then 18');  
  }
  
	}
  
});

答案 2 :(得分:0)

希望以下代码有所帮助:)

if($.trim(age).length == 0) {

    alert('Please type in something');

}

答案 3 :(得分:0)

如果您使用Jquery,请不要使用document.getElementById之类的原生JavaScript,而是使用$('#the-id')

第二次将数值转换/解析为整数parseInt时设置第二个(基数)参数 - parseInt(age, 10),因为当未指定基数时,不同的实现会产生不同的结果。

第三,我就是这样做的

$('my-button-selector').on('click', function() {

    var age = parseInt($('age-input-selector').val(), 10);

    if(isNaN(age)) {
        alert('Numeric value is required for Age!');
        return false;//stop the validation here
    }

    if(new Date().getFullYear() - age >= 18) {
        $('#btn-close-modal').trigger('click');
    } else {
        alert('Younger than 18!');
    }
});