JavaScript/JQuery 函数不返回任何内容
JavaScript/JQuery function doesn't return anything
我在JavaScript/JQuery中的函数不返回任何内容;我希望它为我返回结果,但它不会。如您所见,返回是$("#resultado").html("O Valor do produto ficara "+resultado);
但运行函数时不会按预期显示:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$("#target").submit(function(){
var preco_dolar = $("#preco_dolar").val();
var dolar = $("#dolar").val();
var frete = $("#frete").val();
if ($('#drop').is(':checked'))
{
var drop = 5.8;
}else var drop = 0;
if(typeof preco_dolar == "undefined"){
alert("Erro ! Falta preco do produto");
}
if(typeof frete == "undefined"){
var frete = 40;
}
if(typeof dolar == "undefined"){
var dolar = 2.16;
}
var resultado = (preco_dolar*dolar)+frete;
$("#resultado").html("O Valor do produto ficara "+resultado);
});
</script>
有人可以指出我哪里出错了吗?
首先,您需要将脚本包装到
// here $("#target") is nothing
$(document).ready(function () {
// here $("target") exists
});
其次是为了你的改进,不要使用
if(typeof dolar == "undefined"){
dolar = 2.16;
}
改用
if(!dolar){
dolar = 2.16;
}
这与您将执行的操作相同:
if(!dolar && dolar == 0 && dolar == "" && dolar == false && dolar == undefined){
dolar = 2.16;
}
要使 0 成为有效值,请使用
if (!dolar && dolar !== 0) {
dolar = 2.16;
}
也不要使用两次var dolar = 0;
。如果您已经声明了它,只需使用 dolar =
,就不会覆盖已声明的 var。
您没有调用表单提交,因此页面正在刷新并重置页面。使用 preventDefault
停止表单提交。
$("#target").submit(function (evt) {
evt.preventDefault();
...
return false;
应该足够了。
或者,您可以通过以下方式阻止默认行为
e.preventDefault();
e.stopPropagation();
您没有return
语句。Javascript 函数需要一个 return 语句来返回一个值:
function test() {
return 5;
}
相关文章:
- AJAX:$_GET不返回任何值
- document.styleSheets不返回任何内容
- 在解析对象.save()中;没有返回任何原因
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 为什么这个array.filter总是不返回任何内容
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 返回$http内的父函数
- IE8DOM转换XML,并且不从jQueryfind()或filter()返回任何内容
- 比较数组中的连续元素不会返回任何结果(javascript)
- WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值
- Ajax 不返回任何结果
- 我的 API 调用没有返回任何内容
- Javascript函数img.onload不返回任何内容(真或假)
- 为什么我的 sinon 假服务器不返回任何内容
- beforeSave导致查询不返回任何内容
- Ajax对PHP页面的调用总是不返回任何内容,即使PHP页面有回声
- 控制器的Helper函数不返回任何内容
- 函数不返回任何内容
- Breeze.js getEntities不返回任何实体
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好