我想通过ajax提交表单,但我知道为什么表单不通过ajax提交。为什么ajax没有选择提交ID ..这个代码只是像往常一样提交而不是通过ajax 帮助我,我错了..
echo form_open('Contact_Controller/submit');
echo form_input('name', set_value('name'), 'id="name"');
echo form_input('email', set_value('email'), 'id="email"');
$data = array(
'name'=> 'message',
'id' => 'message',
'cols'=> '35',
'rows' => '12'
);
echo form_textarea($data, 'Message');
echo form_submit('submit', 'Submit', 'id="submit"');
?>
<script type = "text/javascript">
$('#submit').click(function(){
var form_data = {
name: $('#name').val(),
email: $('#email').val(),
message: $('#message').val()
};
$.ajax({
url: "<?php echo site_url('tuts_Contact_Controller/submit'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
alert(msg);
}
});
</script>
答案 0 :(得分:6)
使用这种方式:
我猜你在这个脚本上面有jquery。
<script type = "text/javascript">
$(function(){ // <----------------missed the doc ready function
$('form').submit(function(e){
e.preventDefault(); // <------this will restrict the page refresh
var form_data = {
name: $('#name').val(),
email: $('#email').val(),
message: $('#message').val()
};
$.ajax({
url: "<?php echo site_url('tuts_Contact_Controller/submit'); ?>",
type: 'POST',
data: form_data, // $(this).serialize(); you can use this too
success: function(msg) {
alert(msg);
}
});
});
});
</script>
答案 1 :(得分:1)
您应该阻止表单提交的默认事件:
$('#submit').click(function(evt){
evt.preventDefault();
....