我有两个输入字段显示如下,如果有任何空字段,我想在点击按钮时输出警告。
HTML:
<input placeholder="Day" id="day" type="number" name="day">
<input placeholder="Year" id="year" type="number" name="year">
<button type="button">Click Me!</button>
jQuery的:
$(document).ready(function(){
var currentYear = (new Date).getFullYear();
$('button').click(function(){
day = $("#day").val();
month = $("select option:selected").val()
year = $("#year").val();
pdate = currentYear - year ;
if( day === "" && year === "" ){
alert("the fields are empty");
}
else{
alert("Congratulations");
}
});
});
目前,当我点击一个按钮时,即使其中一个字段为空,else语句也能正常工作。
答案 0 :(得分:4)
使用var
声明变量,并将&&(and)both condition are satisfied
替换为||(or)Either one condition satisfied
更好地使用!
,它会检查所有条件是null,empty
年度验证已更新
$(document).ready(function(){
var currentYear = (new Date).getFullYear();
$('button').click(function(){
var day = $("#day").val();
var month = $("select option:selected").val()
var year = $("#year").val();
var pdate = currentYear - year ;
if((!day )||(!year)){
alert("the fields are empty");
}
//updated
else if((day < 0)|| (year <1920))
{alert('not allow date below 0 & year below 1920');}
else{
alert("Congratulations");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input placeholder="Day" id="day" type="number" name="day">
<input placeholder="Year" id="year" type="number" name="year">
<button type="button">Click Me!</button>
答案 1 :(得分:1)
您需要使用OR(||
)运算符而不是AND(&&
)来检查值;因为它正在检查是否两个值都是空字符串(如果只有一个的字符串为空将会失败),而你似乎想要检查 值是否为空字符串,即:
if ( day === "" || year === "" )
然而,值得指出的是,您的检查将无法捕获多个空格的字符串,因此您可能需要重新编写条件以从值中首先修剪空白区域:
if (day.trim() === "" || year.trim() === "")
String.prototype.trim()
从字符串中删除前导和尾随空格。
顺便提一下,你的变量声明似乎都缺失了,所以除非你在这个已发布的片段范围内的其他地方声明它们,否则它们将是全局变量,这通常是一个不需要的问题(并且容易在代码中的其他地方意外更改) );为了解决这个问题,您应该使用var
或let
(或const
来声明它们,但我不确定是否需要它们保持不变)将它们本地化为本地范围
参考文献:
答案 2 :(得分:0)
尝试使用此代码。使用jquery trim方法来转义空格(如果用户只输入空格)。
var currentYear = (new Date).getFullYear();
$(document).on('click','button',function(){
day = $("#day").val();
month = $("select option:selected").val()
year = $("#year").val();
pdate = currentYear - year ;
if( $.trim(day) != "" && $.trim(year) != ""){
alert("Congratulations");
}
else{
alert("the fields are empty");
}
});