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 方法中使用 ajaxSubmit 而不是 ajaxForm

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 回答
2

单击按钮时,您是否只是忘记在表单上调用提交?

像这样:

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
    });
    $('#' + idForm).submit();
    return false;
}
于 2013-06-10T14:38:50.877 回答
1

您是否尝试以另一种方式访问​​表格?例如 :

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 回答