我想知道我在这里失踪了什么,它必须显而易见。
如果还有坐标,我想要的就是不出现的标记。
var lat = jQuery('#latitude').val();
var lng = jQuery('#longitude').val();
alert(lat);
alert(lng);
if (lat.length != 0) {
alert('shouldnt be happening');
var latlng = new google.maps.LatLng(
parseFloat(lat),
parseFloat(lng)
);
var marker = new google.maps.Marker({
map: map,
position: latlng
});
}
输入字段是否为空,if
条件不断传递。
我也试过if (lat != '') {}
我已设置警报以向自己证明它们是空的,并且正如预测的那样,它们会在空白时弹出一个空白弹出框。
谢谢。
编辑:
为了简化它我输入了这段代码,现在奇怪的是所有3个警报都在发生。
var lat = jQuery.trim(jQuery('#latitude').val());
var lng = jQuery.trim(jQuery('#longitude').val());
var zoom = 7;
alert(lat);
alert(lng);
if (lat.length == 0) {
lat = 53.412;
zoom = 6;
alert('THERE IS NO LATITUDE SET');
}
if (lng.length == 0) {
lng = -8.243;
zoom = 6;
alert('THERE IS NO LONGITUDE SET');
}
if (lat.length != 0) {
alert('now this shouldnt be happening');
}
答案 0 :(得分:0)
我建议使用更具保护性的代码:
var lat = jQuery('#latitude').val() || "";
var lng = jQuery('#longitude').val() || "";
然后:
if (lat.length != "") {
...
}
在很多情况下, val()
可以返回null,使用|| "";
可以确保在var初始化时有一个预期类型的定义值。
另外,我认为将val()替换为:
会更好attr("value")
答案 1 :(得分:0)
这些是Javascript速记编码技术。
当你得到一个变量时,
var lat = jQuery('#latitude').val();
var lng = jQuery('#longitude').val();
当您需要检查其长度时,您需要首先检查这些条件,
null,undefined和empty
所以你可以查一下,
if( lat !== null && lat !== undefined && lat !== "" && lat.length !== 0 ) {
//do something
}
检查相等性时,使用“严格平等”是一种很好的做法。
检查上述条件的速记方法是,
if( lat || "" ){
//Do Something
}
我有一些你可以参考的JavaScript速记技术。 Link