Javascript 如何检查JS中缺少的变量?
我试图在允许表单提交之前检查变量是否存在 目前,用户在表单中输入地址,autocomplete将lat和long添加到表单中。我写了下面的jsJavascript 如何检查JS中缺少的变量?,javascript,forms,onsubmit,Javascript,Forms,Onsubmit,我试图在允许表单提交之前检查变量是否存在 目前,用户在表单中输入地址,autocomplete将lat和long添加到表单中。我写了下面的js function check() { let latitude = document.getElementById("latitude").value; if (latitude == null) { window.prompt("ned a correct address", ""); return fa
function check() {
let latitude = document.getElementById("latitude").value;
if (latitude == null) {
window.prompt("ned a correct address", "");
return false;
} else {
alert('It worked');
return true;
}
}
当我提交一个没有lat和long自动完成的地址时,我仍然得到“它工作了”
这是我的表格
<form method="GET" action="/search" onsubmit="check()">
<input class="form-control" id="getaddy" type="text" placeholder="Search..." name="term" onFocus="geo()">
<input id="latitude" type="hidden" name="latitude">
<input id="longitude" type="hidden" name="longitude">
</form>
> p>这里有一些事情需要考虑,以便更可靠的表单验证;
如果验证失败,建议使用事件对象取消提交操作
通过测试“空字符串”而不是null
确保脚本中没有抛出错误(即确保定义了geo()
等),以便实际调用check()
,而不是由于另一个脚本错误而导致调用失败
以下更改可能会有所帮助:
//传递事件对象
功能检查(事件){
让address=document.getElementById(“getaddy”).value;
//检查空字符串,而不是空字符串
如果(地址=“”){
window.prompt(“ned a correct address”,”);
//使用事件#preventDefault()防止提交
//作为返回的更可靠的替代方案
//假的
event.preventDefault();
}否则{
警惕(“它起作用了”);
}
}
//确保定义了geo(),查看表单是否依赖于此
函数geo(){}
> p>这里有一些事情需要考虑,以便更可靠的表单验证;
如果验证失败,建议使用事件对象取消提交操作
通过测试“空字符串”而不是null
确保脚本中没有抛出错误(即确保定义了geo()
等),以便实际调用check()
,而不是由于另一个脚本错误而导致调用失败
以下更改可能会有所帮助:
//传递事件对象
功能检查(事件){
让address=document.getElementById(“getaddy”).value;
//检查空字符串,而不是空字符串
如果(地址=“”){
window.prompt(“ned a correct address”,”);
//使用事件#preventDefault()防止提交
//作为返回的更可靠的替代方案
//假的
event.preventDefault();
}否则{
警惕(“它起作用了”);
}
}
//确保定义了geo(),查看表单是否依赖于此
函数geo(){}
如果您确实想检查变量是否存在,有一种安全的方法,可以使用:
if(variable) {
// Truthy
} else {
// Falsy
}
这样,您就可以得到所有可能的Falsy
场景,包括:null
,未定义的,NaN
,“
,0
,最后是false
本身。。。没有检查每一个
以下是已编辑的代码段:
函数检查(){
让纬度=document.getElementById(“纬度”).value;
if(纬度){
警惕(“它起作用了”);
返回true;
}否则{
window.prompt(“ned a correct address”,”);
返回false;
}
}
如果您确实想检查变量是否存在,有一种安全的方法,可以使用:
if(variable) {
// Truthy
} else {
// Falsy
}
这样,您就可以得到所有可能的Falsy
场景,包括:null
,未定义的,NaN
,“
,0
,最后是false
本身。。。没有检查每一个
以下是已编辑的代码段:
函数检查(){
让纬度=document.getElementById(“纬度”).value;
if(纬度){
警惕(“它起作用了”);
返回true;
}否则{
window.prompt(“ned a correct address”,”);
返回false;
}
}
调试此代码时,在您描述的场景中,纬度
在条件下的值是多少?@csmckelvey更正了下面答案中的错误:-)调试此代码时,在您描述的场景中,latitude
在条件下的值是多少?@csmckelvey更正了下面答案中的错误:-)如果您对简洁感兴趣,您可以简单地执行return!!纬度
而不是整个如果
部分:)你会失去警报。太棒了!这就成功了。非常感谢OP并不是真正测试变量是否存在,而是测试表单控件中是否输入了某些内容。在这种情况下,应根据适当的标准测试该值,因此如果(纬度=“”)
最好是在执行测试时,其值必须是字符串。虽然如果您对简洁感兴趣,最好测试-90,但您可以简单地执行返回!!纬度
而不是整个如果
部分:)你会失去警报。太棒了!这就成功了。非常感谢OP并不是真正测试变量是否存在,而是测试表单控件中是否输入了某些内容。在这种情况下,应根据适当的标准测试该值,因此如果(纬度=“”)
最好是在执行测试时,其值必须是字符串。尽管测试-90也会更好