【问题标题】:jquery ajaxform url parametersjquery ajaxform url 参数
【发布时间】:2011-04-15 17:13:58
【问题描述】:

对不起,愚蠢的问题...

我需要计算 ajaxForm() 的“url”参数...

我写的是这样的……

$('#form-domanda').ajaxForm({
    url: function() {
        id = $('#form-domanda input[name=domanda_id]').val()
        if (id > 0) {
            return "url-1.cfm"
        } else {
            return "url-2.cfm"
        }
    }
}); 

但 url 只接受字符串 :-(

我该怎么办?

【问题讨论】:

    标签: jquery parameters ajaxform


    【解决方案1】:

    我认为你在这里不走运。听起来您想根据表单元素之一的值更改表单的目标;直到 ajaxForm 绑定到表单之后才会知道有问题的值,因此 Justin 的技巧将不起作用。

    您可以使用beforeSubmitbeforeSerialize 挂钩来更改ajaxForm URL,但API 中没有任何内容可以让您在绑定ajaxForm 后更改URL。所以,这些钩子对你没有用。

    您可以尝试在表单中添加提交处理程序;此处理程序将检查#form-domanda input[name=domanda_id] 的值,然后将适当的ajaxForm 绑定到#form-domanda 并在绑定ajaxForm 之后调用$('#form-domanda').ajaxSubmit()。这可能有效,也可能无效,坦率地说,这有点像 hack。

    我认为您最好将domanda_id 逻辑移动到服务器上,无论是在url-1.cfm 还是首先生成#form-domanda 的任何地方。

    【讨论】:

    • 你是对的...我会更改我的服务器端脚本...非常感谢!
    • Tks,它帮我解决了这个问题 $('form#fileupload').ajaxSubmit({ beforeSubmit: function(data, form, options) { options["url"] = "your url here" }, success:function (data) { //成功时做任何事情 } });
    • @HuestonRido 什么问题?也许您应该提出一个新问题,以便您有空间解释问题所在。
    【解决方案2】:

    试试这个,立即调用函数:

    $('#form-domanda').ajaxForm({
    url: function() {
        id = $('#form-domanda input[name=domanda_id]').val()
        if (id > 0) {
            return "url-1.cfm"
        } else {
            return "url-2.cfm"
        }()
    }
    }); 
    

    【讨论】:

      【解决方案3】:

      作为参考,这对我有用:

      $('#form-domanda').ajaxForm({
          beforeSubmit: function(data, form, options) {
              id = form.find('input[name=domanda_id]').val();
              if (id > 0) {
                  options["url"] = "url-1.cfm";
              } else {
                  options["url"] = "url-2.cfm";
              }
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        • 2018-03-20
        • 2011-02-14
        • 2011-01-25
        • 2013-10-05
        • 2012-08-26
        • 1970-01-01
        相关资源
        最近更新 更多