使用javascript submit()函数帮助将表单提交到JQuery脚本

使用javascript submit()函数帮助将表单提交到JQuery脚本,javascript,jquery,Javascript,Jquery,上周我试图问这个问题,但没有解决。我仍然无法让它工作。我想做的是将通过WYSIWYGjavascript编辑器输入的数据提交到我拥有的JQuery脚本,该脚本将首先告诉用户是否试图提交空文本框。我需要它做的最后一件事是告诉用户他们的数据输入是否成功 我在JQuery脚本中遇到了一个问题,因为单击save按钮时没有执行任何操作 此编辑器使用绑定到编辑器上一个小保存图标的javascript submit()。当用户按下编辑器上的按钮时,它将启动表单标记中的函数。这大概是我所能做到的 我认为表单标签

上周我试图问这个问题,但没有解决。我仍然无法让它工作。我想做的是将通过WYSIWYGjavascript编辑器输入的数据提交到我拥有的JQuery脚本,该脚本将首先告诉用户是否试图提交空文本框。我需要它做的最后一件事是告诉用户他们的数据输入是否成功

我在JQuery脚本中遇到了一个问题,因为单击save按钮时没有执行任何操作

此编辑器使用绑定到编辑器上一个小保存图标的javascript submit()。当用户按下编辑器上的按钮时,它将启动表单标记中的函数。这大概是我所能做到的

我认为表单标签属性存在问题,因为当我在编辑器上单击任意位置时,编辑器会从屏幕底部跳出。我相信这与表单标签中的onclick事件有关

JQuery脚本的第一部分应该处理textarea的表单验证。如果这真的很难实现,我愿意让它去处理服务器端的所有事情,但我只需要将数据发布到JQuery脚本,以便将其发送到我的php脚本

谢谢你们的帮助

<form name="rpt" class="rpt" id="rpt" action="" onclick="doSave(); return false;">


函数doSave()
{
$(函数()
{
$('.error').hide();
$(“.rpt”)。单击(函数()
{
$('.error').hide();
var textArea=$(“#报告”);
如果(textArea.val()==“”)
{
textArea.show();
textArea.focus();
返回false;
}
其他的
{
返回true;
}
var dataString='&report='+report;
警报(数据字符串);返回false;
$.ajax({
类型:“POST”,
url:“body.php?action=customer”,
数据:dataString,
数据类型:“json”,
成功:功能(数据){
$('#cust input[type=text]').val('';
var div=$('').attr('id','message').html(data.message);
如果(data.success==0){
$('#cust input[type=text]').val('';
$(div.addClass('ajax-error');
}否则{
$('#cust input[type=text]').val('';
$(div.addClass('ajax-success');
}
$('body')。追加(div);
}
});
返回false;
});
});
}
不做你想做的事。任何事情都不会被执行,因为你从不告诉它被执行

您可能想尝试以下方法:

<script type="text/javascript">
    jQuery(function($) {
        //... things you want to do at startup
    });
</script>

此外,您可能还需要查看。有几件事需要更改。首先是:

<form name="rpt" class="rpt" id="rpt" action="" onclick="doSave(); return false;">
表示“当文件准备就绪时,执行此代码”。它是缩写,完全等同于稍长的:

$(document).ready(function() {
  ..
});
此代码:

$("#rpt").submit(doSave);
表示“查找id为'rpt'的元素并将事件处理程序附加到该元素,以便在对其执行'submit'事件时,调用do_save()函数”

并将doSave()更改为:

函数doSave(){
$('.error').hide();
$(“.rpt”)。单击(函数(){
$('.error').hide();
var textArea=$(“#报告”);
如果(textArea.val()==“”){
textArea.show();
textArea.focus();
返回false;
}否则{
返回true;
}
var dataString='&report='+report;
警报(数据字符串);返回false;
$.ajax({
类型:“POST”,
url:“body.php?action=customer”,
数据:dataString,
数据类型:“json”,
成功:功能(数据){
$('#cust input[type=text]').val('';
var div=$('').attr('id','message').html(data.message);
如果(data.success==0){
$('#cust input[type=text]').val('';
$(div.addClass('ajax-error');
}否则{
$('#cust input[type=text]').val('';
$(div.addClass('ajax-success');
}
$('body')。追加(div);
}
});
});
返回false;
}

注意:return false现在位于正确的位置,因此它实际上阻止表单提交回服务器。action=“”只意味着表单将提交回其当前位置,因此您必须防止这种情况。

我的html中有一个javascript标记。这就是你说的吗?嗨,克莱特斯,谢谢你对代码的解释和帮助!我尝试了你的代码,但我得到了这个。消息:第3行的语句:未定义变量:do_save我还从表单标记中删除了do_save(),并将函数调用放在html页面末尾的javascript标记中。知道我做错了什么吗?嘿,克莱特斯。。我的能力一定越来越敏锐了,因为我发现了错误的原因。我必须将html文档中的do_save()更改为doSave,不带下划线。现在不会抛出错误,但我仍然希望通过查询字符串。:)克莱特斯,我所做的是发出警报();就在函数doSave()下{但它不会出现。我拥有你说的我应该拥有的一切。我将再次检查它以100%确定。更改了doSave函数名问题。此外,最终返回false的级别错误。它应该位于submit()中的最外层事件处理程序,以防止提交回服务器。Cletus,再次感谢您的帮助。我希望我能说它起作用了。我完全按照您发布的方式复制了您的更改,但仍然得到相同的结果。我在错误窗口中也没有看到任何错误,我想我上次忘了提及,但当我单击“提交”按钮时,页面正在转发。换言之,刷新。但是,我可以在屏幕顶部的蓝色浏览器栏中看到查询字符串。我还在JQuery脚本中的doSave()函数下放置了一个警报,但仍然没有警报。
<form name="rpt" class="rpt" id="rpt" action="" onclick="doSave(); return false;">
<form name="rpt" class="rpt" id="rpt" action="">

<script type="text/javascript">
$(function() {
  $("#rpt").submit(do_save);
});
</script>
$(function() {
  ..
});
$(document).ready(function() {
  ..
});
$("#rpt").submit(doSave);
function doSave() {
  $('.error').hide();
  $(".rpt").click(function() {
    $('.error').hide();
    var textArea = $('#report');
    if (textArea.val() == "") {
      textArea.show();
      textArea.focus();
      return false;
    } else {
      return true;
    }
    var dataString = '&report='+ report;
    alert (dataString);return false;

    $.ajax({
      type: "POST",
      url: "body.php?action=customer",
      data: dataString,
      dataType: 'json',
      success: function(data){
        $('#cust input[type=text]').val('');
        var div = $('<div>').attr('id', 'message').html(data.message);
        if (data.success == 0) {
          $('#cust input[type=text]').val('');
          $(div).addClass('ajax-error');
        } else {
          $('#cust input[type=text]').val('');
          $(div).addClass('ajax-success');
        }
        $('body').append(div);
      }
    });
  });
  return false;
}