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({
    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 に答える
1

あなたはここで運が悪いと思います。フォームの要素の 1 つの値に基づいて、フォームのターゲットを変更したいようです。問題の値は after がフォームにバインドされるまでわからないajaxFormため、ジャスティンのトリックは機能しません。

beforeSubmitまたはbeforeSerializeフックを使用してajaxFormURL を変更できますが、ajaxFormバインドされた URL を変更できる API はありません。したがって、フックは役に立ちません。

送信ハンドラーをフォームに追加してみてください。このハンドラーは の値をチェックしてから#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({
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 に答える