0

この質問は以前に回答された可能性がありますが、私の問題を他の回答に合わせることができませんでしたが、実際に調査を行いました。

ajaxForm ( http://jquery.malsup.com/form/ ) を使用しており、同じ関数を使用して複数のフォームを送信したいのですが、jQuery セレクターが機能していません。

$('#' + idForm).ajaxForm({

皆さんに質問する以外に、他に何ができるかわかりません。

これが私のコードです:

http://jsfiddle.net/hRTcE/

HTML:

<form id="jsonForm" action="/echo/json/" method="post">Message:
    <input type="text" name="message" value="Hello JSON" />
    <input id="HHHHHHHHH" type="button" onclick="formSubmit(this)" value="onclick not working">
    <input type="submit" value="submit is working" />
</form>
<script type="text/javascript" src="http://malsup.github.com/jquery.form.js"></script>

JS:

function formSubmit(inputB) {
    alert('click does not work');
    var formulario = inputB.form;
    var idForm = inputB.form.id;
    var test = $('#jsonForm');

    //debugger;
    $('#' + idForm).ajaxForm({
        dataType: 'json',
        beforeSubmit: showRequest,
        success: processJson
    });
    return false;
}

function processJson(data) {
    //debugger;
    alert("it worked" + data);
    console.log("respose: " + data);
}
function showRequest(formData, jqForm, options) {
    //debugger;
    var queryString = $.param(formData);
    console.log('About to submit: \n' + queryString + '\n');
    return true;
}
$('#jsonForm').ajaxForm({
    dataType: 'json',
    beforeSubmit: showRequest,
    success: processJson
});

ありがとう!!!

4

3 に答える 3

3

formSubmit メソッド内で ajaxForm の代わりに ajaxSubmit を使用する

ajaxForm はフォームを準備するだけで、送信はしません

あなたはこのようにすることができます

function formSubmit(inputB) {
    alert('click does not work');
    var formulario = inputB.form;
    var idForm = inputB.form.id;
    var test = $('#jsonForm');

    //debugger;
    $('#' + idForm).ajaxSubmit({
        dataType: 'json',
        beforeSubmit: showRequest,
        success: processJson
    });
    return false;
}
于 2013-06-10T14:44:04.790 に答える
1

別の方法でフォーム bu にアクセスしようとしましたか? 例えば ​​:

var formulario = $(inputB).parent('form');
var idForm = $(formulario).attr('id');

$('#' + idForm).ajaxForm({
    dataType: 'json',
    beforeSubmit: showRequest,
    success: processJson
});

//Just add this
$('#' + idForm).submit();

return false;

[編集]

以下のようにこの行を追加するだけです:

    //Just add this
    $('#' + idForm).submit();

フィドルで動作します

于 2013-06-10T14:47:41.563 に答える