首页 > [已解决]点击超链接,弹出表单,提交表单,想将超链接中的data-xx的值放到表单ajax的post参数里,如何设置

[已解决]点击超链接,弹出表单,提交表单,想将超链接中的data-xx的值放到表单ajax的post参数里,如何设置

<a href="#" class="reset-creator-btn op vh"  data-target="{{ user.props.email }}">{% trans "Modify creator" %}</a>
var user_list = [], user_email;
{% for user in users_admin %}
user_email = '{{ user.email }}';
user_list.push({value:user_email, label:user_email});
{% endfor %}
$('.reset-creator-btn').click(function() {
    var form = $("#reset-creator-form");
    form.modal({appendTo: "#main", focus:false});
    $('#simplemodal-container').css({'height':'auto', 'padding':0});
    $('#add-admin-tabs').tabs();
    addAutocomplete('#added-member-name', '#enter', user_list);
    

});
$('#reset-creator-form').submit(function() {
    var form = $(this),
        cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
        post_data = '',
        input = $('[name="user_email"]', form); 
        post_data = input.val();
    
    if (!post_data) {
        apply_form_error(form.attr('id'), '{% trans "Please enter emails." %}');
        return false;
    }    

    var submit_btn = $('[type="submit"]', form);
    disable(submit_btn);
    $.ajax({
    url: '{% url 'reset_user_creator' %}',
        type: 'POST',
        dataType: 'json',
        cache: false,
        beforeSend: prepareCSRFToken,
        data: {
            'reset_creator_email': post_data
        },
        success: function(data) {
            location.reload('true');
        },
        error: function(data, textStatus, jqXHR) {
            var errors = $.parseJSON(data.responseText);
            $.each(errors, function(index, value) {
                apply_form_error(form.attr('id'), value);
            });
            enable(submit_btn);
        }
    });

    return false;
});

解决方法:在form表单里追加几个hidden标签,把这几个值写进去

点击超连接函数

$('.reset-creator-btn').click(function() {
var form = $("#reset-creator-form");

var xx = $(this).attr('data-target');
或var xx = $(this).data('target');
$('#email_user',form).val(xx);

点击超链接,弹出的表单

<form id="reset-creator-form"  method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
   
    <input  id = "email_user"/>/*隐藏的表单,为了看其值,去掉了type='hidden'*/
  
</form>


可以试试 jQuery 的 serialize() 或 serializeArray() 函数,可以获取到指定 form 元素中的表单信息。

【热门文章】
【热门文章】