使用 Ajax 发送的表单包含多参数和 A href


Forms with Ajax send with multi-parameter and A href

在表单元素中,我使用 href 发送数据。使用JavaScript(如下定义),它可以完美地工作。

我现在想用Ajax发送表格,不幸的是它不起作用。你有解决方案给我吗?jQuery包含在页面上。

谢谢!

function sendData(sFm, sID, sFn, sCl) {
    var form = document.getElementById(sFm);
    form.sid.value = sID;
    form.fnc.value = sFn;
    form.cl.value = sCl;
    form.submit();
}

<a href="Javascript:sendData('myform', '2343', 'product', 'order');">Send Data</a>

我的新代码:

function sendData(sFm, sID, sFn, sCl) {
    var form = $("#"+sFm);
    form.submit( function() {
        var sid = $('input[name="sid"]').val(sID);
        var fnc = $('input[name="fnc"]').val(sFn);
        var cl = $('input[name="cl"]').val(sCl);
        $.ajax({
            type: form.attr('method'),
            url: form.attr('action'),
            data: {sid: sid, fnc: fnc, cl: cl}
        }).done(function( e ) {
        });
    });
    form.submit();
}
$("form").submit(function() { // for all forms, if you want specially one then use id or class selector
    var url = $(this).attr('action'); // the script where you handle the form input.
    var method = $(this).attr('method');    
    $.ajax({
           type: method,
           url: url,
           data: $(this).serialize(), // serializes the form's elements.
           success: function(data)
           {
               alert(data); // handle response here
           }
         });
    return false; // avoid to execute the actual submit of the form.
});

:) , 谢谢

仅仅因为我们不想通过 ajax 提交所有表单,所以我们可以设置一个数据属性来表示表单标签,它应该由 ajax 提交还是正常提交,,所以,,

$("form").submit(function() {  ...
   if($(this).attr('data-ajax') != "true") return true;  // default hanlder
   ...  

所以如果形式是这样写的:-

<form action="/dosomething" method="post" data-ajax="true">      </form>   // will be sumit by ajax
<form action="/dosomething" method="post" data-ajax="false">      </form>  

默认求和方法