Javascript 使用Jquery检查元素值是否为空
我有一个输入,我想检查它是否为空。我正在使用Wikipedia的API获取信息,这是AJAX部分:Javascript 使用Jquery检查元素值是否为空,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个输入,我想检查它是否为空。我正在使用Wikipedia的API获取信息,这是AJAX部分: $.ajax({ type: 'GET', url: searchedUrl, async: false, dataType: 'json', success: function(data){ var length = data[1].length; var inputValue = $('#searchInput').val(); con
$.ajax({
type: 'GET',
url: searchedUrl,
async: false,
dataType: 'json',
success: function(data){
var length = data[1].length;
var inputValue = $('#searchInput').val();
console.log(inputValue);
if (!$('#searchInput').val()){
error = true;
console.log('err');
} else {
if (error = true){
$('#errorMsg').html('Search error').fadeOut();
}
$('.title').css('margin-top', '30px');
$('#output').removeClass('hidden');
for (var i = 0; i < length; i++){
$('#output').prepend('<li><a href='+data[3][i]+'>'+data[1][i]+'</a><br>'+data[2][i]+'</li>');
}
}
},
error: function(err){
error = true;
$('#errorMsg').html('Search error').fadeIn();
}
});
但它不起作用
PS:这是我的JSFIDLE:
谢谢你的帮助 你正在做一个测试!==check,它同时检查类型和值。这意味着如果inputValue为null或未定义,则您的inputValue!==这是真的
为了防止出现这种情况,只需执行if inputValue{…}即可检查输入值是否为null、未定义或0。我不确定您在这里要做什么。但让我澄清一下 您的inputValue可以是未定义的、空的或有其他内容 如果调用ifinputValue//undefined或null,则它将等于iffalse 如果ifinputValue//blah blah blah,它将等于iftrue
因此,首先您需要先检查它是否为null或未定义,然后调用.length以确保它不是空的。谢谢您的回答,但我发现了它不起作用的地方。 在检查此行中是否有数据之前,我试图获取数据长度:
success: function(data){
var length = data[1].length;
var inputValue = $('#searchInput').val();
console.log(inputValue);
它将var length=data[1].length;在我检查输入后,它工作了
谢谢大家! ifinputValue.length{…}!如果长度为0,则不会执行If体。为什么不放置一个调试器,查看该点的值是什么?该值为,但它仍然不起任何作用。在JS第25行中,您有If error=true,它应该是If error==true。您可能还应该从该函数返回或抛出,以防止运行它的其余部分。Nvm。谢谢你,但我猜错了。我会把它寄出去的。感谢Anywyasth,这意味着如果inputValue在OP的代码中为null或未定义,inputValue将永远不会为null。如果没有id为searchInput的元素或者它不是表单字段,那么它将是未定义的唯一方法。如果它在那里,并且是一个表单字段,inputValue将是一个字符串。我刚刚发布了,哈哈哈,在发布答案之前我意识到了这一点。你可以查看我刚才在Liam Gray中的评论。这是正确答案+1。无论如何谢谢你!这在技术上是错误的,如果inputValue对于null、undefined和。长度为0的字符串为false,即使长度为0的数组为true也令人困惑。
success: function(data){
var length = data[1].length;
var inputValue = $('#searchInput').val();
console.log(inputValue);