Javascript[初学者]。以对象为参数调用函数

Javascript[初学者]。以对象为参数调用函数,javascript,jquery,Javascript,Jquery,我的代码跟随你的评论。 里面的文件准备好了 也许现在对我的帮助更清楚了 我告诉过你。我需要外部的对象“顺序”,因为我需要它不止一次 现在Ajax没有检测到对象。但是当我把它放在点击功能里面时,一切都很好 var order = { blabla: "blabla", ...} $('#go_next').click(function() { saveStepOne(order); }) function saveStepOne(order) { var isValid = tru

我的代码跟随你的评论。 里面的文件准备好了

也许现在对我的帮助更清楚了

我告诉过你。我需要外部的对象“顺序”,因为我需要它不止一次

现在Ajax没有检测到对象。但是当我把它放在点击功能里面时,一切都很好

var order = { blabla: "blabla", ...}

$('#go_next').click(function() {
  saveStepOne(order);
})

function saveStepOne(order) {
    var isValid = true;
    $('.step-one-val').each(function() {
      if ($.trim($(this).val()) == "") {
        isValid = false;
        $(this).addClass("has-error");
      }
    });

    if (isValid == false) {
      return false
    } else {
      priceAjaxCall(order)
    }
  }

function priceAjaxCall(order) {
    $.ajax({
      url: "<%=create_order_path%>",
      type: "POST",
      data: { order },
      success: function (data) {
        priceAjaxReturn(data)
      },
      dataType: "json"
    })
    console.log(order)
  }

  function priceAjaxReturn(data){
    if (data["status"] == 200) {
      $(".price").val(data["price"])
    } else {
      $(".price").val("ERROR")
    }
  }
var顺序={blabla:“blabla”,…}
$(“#转到下一步”)。单击(函数(){
第一步(订单);
})
功能saveStepOne(订单){
var isValid=true;
$('.step one val')。每个(函数(){
if($.trim($(this).val())==“”){
isValid=false;
$(this.addClass(“有错误”);
}
});
if(isValid==false){
返回错误
}否则{
priceAjaxCall(订单)
}
}
函数priceAjaxCall(订单){
$.ajax({
url:“”,
类型:“POST”,
数据:{order},
成功:功能(数据){
priceAjaxReturn(数据)
},
数据类型:“json”
})
console.log(订单)
}
函数priceAjaxReturn(数据){
如果(数据[“状态”]==200){
$(“.price”).val(数据[“价格])
}否则{
$(“.price”).val(“错误”)
}
}
非常感谢

问候

试试这个


sendToAjax(window.my_obj)

当您在sendToAjax函数中发布您的代码时,它更具体,让我们了解更多

试试这个:

$.ajax({
  type: "POST",
  url: "url",
  data: params,
  cache: false,
  success: function(result){
     $("#resultarea").text(result);
  }
});
@全部

几个小时后,我想和你分享解决方案。 如果要从函数访问对象内部,可以将该对象存储在另一个函数中并返回它

例如:

function myObject() {
 var my_obj = { blabla: "blabla" }
 return my_obj
}

$('.my_class').click(function() {
 variable_name = myObject();
 console.log(variable_name)
 sendToAjaxOrWherverYouWant(variable_name)
}
多谢各位


希望这能帮助别人

是否有其他代码修改“my_obj”?也许在ajax调用之前,它从其他地方得到了“真”或“假”。@BrankVictoria我补充了更多code@PolGasullNavarro我只是看到了相同的代码…所有代码都在$(document).ready(function(){})?我试图通过将代码放在浏览器控制台中,将console.log修改为“console.log”(“order的值为:”+JSON.stringify(order)),并调用函数“saveStepOne(order)”;“我在控制台中得到的结果是:{“blablabla”:“blablabla”}”你在使用哪种浏览器?你应该总是格式化你的代码并解释你的代码。。。如果给OP提供了有效的代码,他们将如何学习和理解这个问题?你能解释一下你的代码中发生了什么吗。请尝试编辑您的回答这只是一个使用POST类型的简单api请求,如您所见,params(parameters)是服务器端包含敏感信息/数据库的对象。如果成功处理请求,则从api请求中回调success,并在必要时返回数据/结果。此外,还可以通过执行错误回调来检查请求响应状态:error:function(jqXHR,exception){if(jqXHR.status==0){}else if(jqX.status==404){}else if(jqXHR.status==500){}else if(exception=='parserror'){}else if(exception=='timeout'){}else if(exception=='abort'){}else{console.log('Uncaught Error.\n'+jqXHR.responseText);}}@thisgy有两个拇指您好,但不是数组,是一个对象。因此工作得很好。谢谢您的时间。请再次投票给我好吗?;)它仍然会被覆盖-您从未将变量存储在fnc之外,因此每次调用fnc时,它都会将obj设置为默认值-我没有进行向下投票;):)这是真的,但在这种情况下对我来说是好的,因为如果用户更改输入,将调用函数并输入新值。谢谢@这家伙有两个拇指