如何从javascript函数返回true以及值?

时间:2015-05-04 08:57:50

标签: javascript php jquery html image

大家好我正在使用一个函数来检测图像扩展名。

<body>
<input id="imgExtension" type="text" />
<input id="myFile" type="file" />
<script>
function checkExt(x){
var y = x.split('.').pop();
if (y != "jpg" && y != "png") {
    return false;
}

else {
    // i want to return *y*[image extension] from here
    return true;
}
}

$(function(){
$("#myFile").change(function(){
var x = $(this).val;
    if(checkExt(x)){
       // i want to put [image extension] here in #imgExtension
       $('#imgExtension').val();
    }

    else  {
       alert("Error, invalid image extension");
    }
}    
}
</script>
</body>

最近,我只是检查图片扩展名并返回 true false ,但我也希望获得扩展名,因为我需要将其解析为我的PHP脚本

4 个答案:

答案 0 :(得分:5)

除了返回true或false之外,您只能返回扩展名,如果根本没有扩展名,则返回null。

另一方面,你可以创建一个包含两个值的js对象,但我会选择第一个。

答案 1 :(得分:1)

返回多个值的最简单方法是返回一个对象。

return { value: true, extension: '.jpg' };

然后,您可以访问作为普通对象返回的值。

答案 2 :(得分:0)

你不能返回两件事(除非你使用数组)。我建议你返回扩展名或null。由于在JavaScript中称为falsfy,调用if(checkExt(x))将为null求值为false,对于jpg或png则为true。

答案 3 :(得分:0)

您不需要返回2个值。 checkExt可以正常工作,只需返回值,或者什么都不返回。做这样事情的最干净的方法是使用三元语句(谷歌它,易于学习,将节省你的生命时间)

function checkExt(x){
  var y = x.split('.').pop();
  return y != "jpg" && y != "png" ? false : y;
}