CodeIgniter Javascript表单提交
我首先想说,我对javascript和jQuery非常陌生。 我想这是一个非常愚蠢和简单的问题,我知道在这方面有很多问题,我都试过了。虽然我似乎不能解决我的问题 我有一个输入字段和一个提交按钮。单击submit,我想将输入文件的内容保存到数据库中,并继续保持页面内容不变 我的Javascript代码如下所示:CodeIgniter Javascript表单提交,javascript,jquery,ajax,codeigniter,Javascript,Jquery,Ajax,Codeigniter,我首先想说,我对javascript和jQuery非常陌生。 我想这是一个非常愚蠢和简单的问题,我知道在这方面有很多问题,我都试过了。虽然我似乎不能解决我的问题 我有一个输入字段和一个提交按钮。单击submit,我想将输入文件的内容保存到数据库中,并继续保持页面内容不变 我的Javascript代码如下所示: <script type="text/javascript"> $(document).ready(function() {
<script type="text/javascript">
$(document).ready(function()
{
$('#submit').submit(function(e)
{
e.preventDefault();
var msg = $('#uname').val();
$.post("c_test/test_submit", {uname: msg}, function(r) {
console.log(r);
});
});
});
</script>
$(文档).ready(函数()
{
$(“#提交”).submit(函数(e)
{
e、 预防默认值();
var msg=$('#uname').val();
$.post(“c_test/test_submit”,{uname:msg},函数(r){
控制台日志(r);
});
});
});
我的html代码如下(我使用codeigniter):
$this->load->helper('form');
回声形式_open();
$data=array('name'=>uname','id'=>uname');
回显表单输入($data)。'
;
$data=array('name'=>'submit'、'id'=>'submit'、'value'=>'submit');
echo表单_提交(数据);
回声形式_close();
如果有人能指出我的愚蠢,我将不胜感激。谢谢 可能是这样的:
$data=array('name'=>'submit','id'=>'submit','value'=>'Submit','onsubmit'=>'return false;');
<?php
$this->load->helper('form');
echo form_open('', array( 'id' => 'myform'));
..
这将阻止表单发布,从而阻止页面刷新。但是,它要求您通过ajax提交表单。看起来id为“submit”的
元素是表单的提交按钮-
。但是,submit
事件是由表单而不是submit按钮触发的,因此绑定事件处理程序不会触发
将“submit”id
移动到表单上,或者在绑定submit
事件处理程序时更改选择器:
$('form').submit(function(e) {
// handle submit event from the form
});
你必须这样做:
$data=array('name'=>'submit','id'=>'submit','value'=>'Submit','onsubmit'=>'return false;');
<?php
$this->load->helper('form');
echo form_open('', array( 'id' => 'myform'));
..
“提交”事件始终指向窗体,而不是窗体按钮。您正在使用的
$('#submit').submit(function(e){ ... });
在这种情况下,submit
是按钮/输入
的id
,它没有类似于submit
的事件,您可以使用单击
事件,如
$('#submit').click(function(e){ ... });
或
否则,您可以更改以下行
echo form_open();
到
而不是
$('#submit').click(function(e){ ... });
你可以用
$('#myform').submit(function(e){
e.preventDefault();
var msg = $('#uname').val();
var url=$(this).attr('action');
$.post(url, {uname: msg}, function(r) {
console.log(r);
});
});
或
虽然我能够从代码中推断出问题所在,但如果您在问题中准确地解释您遇到的问题是什么,这通常是有用的。如果你得到的功能不是你所期望的,那么说一下该功能是什么。此外,并非每个人都使用与你相同的语言来生成HTML(就我个人而言,我从未使用codeigniter,尽管有可能知道你发布的代码应该做什么),因此包含实际的,在询问与jQuery或常规JavaScript相关的问题时生成HTML。对此我很抱歉。我一定会记住这一点,以后在这里。非常感谢。这很有帮助。。我还想知道返回false的意义是什么?返回false只是为了确保表单永远不会以正常方式通过浏览器提交。如果您返回true或根本不返回任何内容,这意味着您有可能发送表单。如果返回false,您只需确保JavaScript会阻止您这样做。这不是必需的,但我经常遇到这种情况,我总是加上它,只是为了确保表格不会被发送:)非常感谢你这样的描述性回答。。它工作得非常好。。就jQuery而言,我确信我有很多阅读要做。
$('#submit').click(function(e){ ... });
$('#myform').submit(function(e){
e.preventDefault();
var msg = $('#uname').val();
var url=$(this).attr('action');
$.post(url, {uname: msg}, function(r) {
console.log(r);
});
});
$('#myform').on('submit', function(e){
e.preventDefault();
var msg = $('#uname').val();
var url=$(this).attr('action');
$.post(url, {uname: msg}, function(r) {
console.log(r);
});
});