我有一个项目列表,每个项目我有一个按钮。在点击按钮,我提交的形式。在submit
函数中,我重定向到一个url。
<div style="float:left;margin-top:4px;" class="enroll_onload" data-content="localhost/action/event_calendar/manageonal&event_id=40117&group_guid=40129&user_id=2&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()
};
});