0

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

我需要计算 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 只接受字符串:-(

我能怎么做?

4

3 回答 3

1

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

$('#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"
    }()
}
}); 
于 2011-04-15T17:18:07.437 回答
1

我认为你在这里不走运。听起来您想根据表单元素之一的值更改表单的目标;直到 after 绑定到表单时才会知道有问题的值,ajaxForm所以贾斯汀的把戏不起作用。

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

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

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

于 2011-04-15T17:36:15.197 回答
1

作为参考,这对我有用:

$('#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";
        }
    }
});
于 2012-10-30T18:18:03.910 回答