在单击提交表单时,重定向到URL不起作用


On click submit a form the redirect to a URL is not working

我有一个项目列表,每个项目我有一个按钮。在点击按钮,我提交的形式。在submit函数中,我重定向到一个url。

HTML

<div style="float:left;margin-top:4px;" class="enroll_onload" data-content="localhost/action/event_calendar/manageonal&amp;event_id=40117&amp;group_guid=40129&amp;user_id=2&amp;course_id=12" data-id="40117" id="enroll_btn">
<a href="javascript:void(0)" class="enroll_to">
<span class="enroll_button">Enroll</span>
</a></div>
<form method="post" action="http://10.0.1.22/firstplanet/fpin/dev/learn/amfphp/services/data/rest/enrollCourseOnLoad" id="enroll40117">
<input type="hidden" value="2" name="user_id"><input type="hidden" value="admin" name="name">
<input type="hidden" value="any@gmail.com" name="email">
<input type="hidden" value="administrator" name="username">
<input type="hidden" value="any.png" name="userImage"><input type="hidden" value="12" name="course_id">
</form>

像这样我有另一个ten items with different values & id

脚本

$('div.enroll_onload').live('click',function(){
        var id = $(this).attr('data-id');
        var form_id = $(this).next('#enroll'+id);
        var hrefTo = $(this).attr('data-content');
        $(form_id).submit(function() {
            alert('working');
            var formData = {
                    'name'              : $('input[name=name]').val(),
                    'email'             : $('input[name=email]').val(),
                    'user_id'           : $('input[name=user_id]').val(),
                    'username'          : $('input[name=username]').val(),
                    'userImage'         : $('input[name=userImage]').val(),
                    'course_id'         : $('input[name=course_id]').val()
                };
            $.ajax({
                type        : 'POST', // define the type of HTTP verb we want to use (POST for our form)
                url         : '<?php echo $vars['url']?>learn/amfphp/services/data/rest/enrollCourseOnLoad',
                data        : formData,
                success:function(data)
                {
                    if(data){
                        window.location.href = hrefTo;
                    } 
                }
            });
        });
    });

当我提交函数时,我面临的问题是它不提交,我在提交后调试脚本,它不去函数,意味着它执行到$(form_id).submit(function() {,然后跳过所有其余的。

你知道是什么问题吗?

$('div.enroll_onload').live在jquery 1.9和新版本中删除

由于你没有任何提交按钮,所以变通的办法是

$('div.enroll_onload').on('click',function(){
        var id = $(this).attr('data-id');
        var form_id = $(this).next('#enroll'+id);
        var hrefTo = $(this).attr('data-content');
        var submitInput = $("<input type='submit' />");
        form_id.append(submitInput);
        submitInput.trigger("click");
});
// take out this function from the click function have it separately in document on load
$("#enroll40117").on("submit",function(e) {
            e.preventDefault();
            e.stopImmediatePropagation();

            var formData = {
                    'name'              : $('input[name=name]').val(),
                    'email'             : $('input[name=email]').val(),
                    'user_id'           : $('input[name=user_id]').val(),
                    'username'          : $('input[name=username]').val(),
                    'userImage'         : $('input[name=userImage]').val(),
                    'course_id'         : $('input[name=course_id]').val()
                };
 });